【发布时间】:2021-04-16 01:05:05
【问题描述】:
我想编写一个 bat 文件来在任何 Windows 系统上设置系统变量。我制作的软件需要设置路径,而不是要求用户处理我听说我们可以使用 bat 文件完成此任务的方法,所以我尝试了多种设置路径的方法,其中大多数是所有现有路径的副本,而不是添加新路径,有时它会删除所有路径并仅保留新路径
setx Path "%Path%;c:\ffmpeg"
复制所有现有的路径变量
我确实阅读了有关此问题的多个 Stackoverflow 查询,但没有任何帮助
如果您在您的系统上进行测试以检查
请先保存/复制所有路径
谢谢
埃斯瓦尔
【问题讨论】:
-
既然你说要设置系统变量,我强烈建议你使用
/M选项。 -
请注意,
setx会更改未来会话的变量,但不会更改当前会话。 -
好吧,再一次,在修改持久存储的系统或用户时使用
%PATH%是一个不行-永远不会 环境变量PATH由您使用命令行修改 userPATH。如果你已经在你的机器上执行了那个命令行,那么你已经破坏了 user 环境变量PATH。我建议阅读我在System cannot find path even though it exists in paths 上的回答,其中包含如何在损坏后修复PATH配置的说明。 -
我建议接下来阅读What is the reason for "X is not recognized as an internal or external command, operable program or batch file"?,它非常详细地解释了Windows和Windows命令处理器对
PATH的管理和使用。然后阅读Why are other folder paths also added to system PATH with SetX and not only the specified folder path?和How to search and replace a string in environment variable PATH? -
另请参阅Adding the current directory to Windows path permanently 和最后但并非最不重要的How can I use a .bat file to remove specific tokens from the PATH environment variable?,以从 user 或 system 环境变量路径中删除文件夹路径.如果批处理文件将文件夹路径添加到 user 或 system 环境变量路径,则应该还有一个批处理文件从环境变量中删除文件夹路径。
标签: batch-file cmd command