【问题标题】:batch file - setting the user input to the system variable path批处理文件 - 将用户输入设置为系统变量路径
【发布时间】:2012-12-27 09:26:47
【问题描述】:

我希望用户输入 bin 目录的路径,然后将该路径存储到系统变量路径中

我试过了

 set /p path = Please specify the path to the bin folder
 echo Path is set to = %path%

好像不行

基本上我希望用户输入路径,并且输入的路径永久存储在系统变量“路径”中希望我现在更清楚

【问题讨论】:

  • 定义'不起作用'...

标签: windows batch-file cmd batch-processing


【解决方案1】:

你可能会从这个问题的答案中得到帮助:Setting a system environment variable from a Windows batch file?

它说你应该使用setx

【讨论】:

  • setx 的问题是,我们有 2 个 PATH 变量:一个系统范围的变量和一个用户自己的变量。我不想只添加到用户的本地 path 变量中。
  • @anishsane 查看setx /?/M 选项。它会做你想做的事。 technet.microsoft.com/en-us/library/cc755104(v=ws.10).aspx
  • 当我们读取 PATH 变量时,它是两个 PATH 变量的连接版本。我想设置new_user_path=old_user_path;my_dir而不是new_user_path=old_path;my_dir
【解决方案2】:

删除空格。 set 命令不会修剪,因此输入实际上存储在名为 path<space> 的变量中。

如果您在不带参数的情况下调用set,您应该能够轻松发现这一点。您将看到一个具有此额外空间的额外变量。

但请注意:path 已经是一个现有变量,其中包含命令会话的搜索路径。如果您不想覆盖该变量,则最好完全使用不同的名称。

【讨论】:

  • 以及如何将用户输入的路径附加到系统路径变量;e
  • set path=%path%;%yourtemporaryvariable%
  • 我很容易尝试使用注册表和所有方法
  • 嗯。我认为这不是持久的。也就是说,如果您的命令会话关闭,该值将消失。我看到你在你的问题中添加了一段关于持久性的段落,这是以前没有的。
  • 使用setx,我认为您应该能够使其持久化,但还有另一个限制。如果我运行setx path="%path%;c:\added\path" \m,我会收到错误“错误:命令行参数的长度不应超过 255 个字符”。这是一个问题,因为您的 %path% 变量可能更长(它在我的 PC 上)。长话短说:批处理不是修改此变量的正确位置。此外,您的脚本需要管理员权限。
猜你喜欢
  • 2014-02-03
  • 2011-10-02
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多