Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理文件-将用户输入设置为系统变量路径_Windows_Batch File_Cmd_Batch Processing - Fatal编程技术网

Windows 批处理文件-将用户输入设置为系统变量路径

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,您应该能够很容易地发现这一点

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

我试过这个

 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
NOT
new_user_path=old_path;我的目录