Windows 批处理文件-将用户输入设置为系统变量路径
我希望用户输入bin目录的路径,然后将该路径存储到系统变量path 我试过这个Windows 批处理文件-将用户输入设置为系统变量路径,windows,batch-file,cmd,batch-processing,Windows,Batch File,Cmd,Batch Processing,我希望用户输入bin目录的路径,然后将该路径存储到系统变量path 我试过这个 set /p path = Please specify the path to the bin folder echo Path is set to = %path% 似乎不起作用 基本上,我希望用户输入路径,并且输入的路径永久存储在系统变量“path”中。希望我现在更清楚了,删除空格。set命令不会修剪,因此输入实际上存储在名为path的变量中 如果在没有参数的情况下调用set,您应该能够很容易地发现这一点
set /p path = Please specify the path to the bin folder
echo Path is set to = %path%
似乎不起作用
基本上,我希望用户输入路径,并且输入的路径永久存储在系统变量“path”中。希望我现在更清楚了,删除空格。
set
命令不会修剪,因此输入实际上存储在名为path
的变量中
如果在没有参数的情况下调用set
,您应该能够很容易地发现这一点。您将看到一个额外的变量,它有这个额外的空间
但请注意:
path
已经是一个现有变量,包含命令会话的搜索路径。如果不想覆盖该变量,最好使用不同的名称。您可以从以下问题的答案中获得帮助:
它说您应该使用
setx
定义“不工作”…以及如何将用户输入的路径附加到系统路径变量b;e设置路径=%path%;%yourtemporaryvariable%
非常简单,我尝试使用注册表和Allhm。我认为这不是一成不变的。也就是说,如果命令会话关闭,该值将消失。我看到你在你的问题中添加了一段关于持久性的内容,这是以前没有的。我认为,使用setx
你应该能够使它持久化,但还有另一个限制。如果我运行setx path=“%path%;c:\added\path”\m
,我会得到一个错误“error:命令行参数的长度不应超过255个字符”。这是一个问题,因为您的%path%变量可能更长(在我的电脑上)。长话短说:批处理不是修改此变量的正确位置。另外,您的脚本还需要管理员权限。setx的问题是,我们有两个路径变量:一个系统范围的变量和一个用户自己的变量。我不想只添加到用户的本地路径
变量。@anishsane请查看setx/?
的/M
选项。它会做你想做的事。当我们读取路径变量时,它是两个路径变量的串联版本。我想设置new\u user\u path=old\u user\u path;my_dir
NOTnew_user_path=old_path;我的目录