处理调用另一个批处理文件的批处理文件。
K:\Market Risk>call "K:\Market Risk\activate.bat"
The system cannot find the path specified.
所以我在批处理文件的开头设置了路径并确保它在那里:
SET PATH=%PATH%;K:\Market Risk\
K:\Market Risk>echo %PATH%
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Shoreline Communications\
ShoreWare Client\;C:\Program Files\dotnet\;C:\Program Files (x86)\Microsoft SQL Server
\150\DTS\Binn\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\
WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\
Shoreline Communications\ShoreWare Client\;C:\Program Files (x86)\Common Files\Oracle\
Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;
C:\Program Files (x86)\Shoreline Communications\ShoreWare Client\;
C:\Users\Kyle.Dixon\AppData\Local\Microsoft\WindowsApps;C:\Users\Kyle.Dixon\AppData\Local\
Programs\Git\cmd;C:\Users\Kyle.Dixon\AppData\Local\atom\bin;C:\Users\Kyle.Dixon\Documents\
R\R-3.5.2\bin\R.exe;C:\Users\Kyle.Dixon\Documents\R\R-3.5.2\bin;C:\Users\Kyle.Dixon\
AppData\Roaming\MarketView\MarketView ExcelTools\;K:\Market Risk\
但是,我仍然遇到同样的错误:
K:\Market Risk>call "K:\Market Risk\activate.bat"
The system cannot find the path specified.
有人遇到过这个问题吗?
我建议阅读 “X 未被识别为内部或外部命令、可操作程序或批处理文件”的原因是什么? 它应该有助于理解 Windows 是如何管理环境变量
PATH
的。不幸的是,Windows 并没有很好地管理它,这会导致很多问题,因为没有可用的命令来安全地添加/删除 system 或 user PATH
的文件夹路径。缺少由 Microsoft 编写的用于安全更新 PATH
并应用所有必要的错误检查的此类命令或可执行文件,其结果是产生许多不好的编码脚本,这些脚本经常损坏存储在 Windows 注册表中的 system 和 user PATH
正在尝试更新它们。
我的建议是以管理员身份打开 Windows 控制面板 - 系统和安全(在查看方式:类别上选择)- 系统 - 高级系统设置 - 环境变量 以管理员身份并清理
Path
环境变量,用户 Path
(上窗格)和 系统 Path
(下部窗格)。也可以通过单击 Windows 开始 按钮,在键盘上键入 环境 和 Windows 在菜单中建议 为您的帐户编辑环境变量 和用语言编辑系统环境变量 来打开环境变量窗口Windows 的。单击两个建议项目之一,如有必要,请根据 Windows 版本单击按钮环境变量。
Path
应始终以以下默认 Windows 文件夹路径启动:
Path
不再以此处所写的这些文件夹路径启动,则它在过去曾被严重更新过。 (最后一个文件夹路径仅在 Windows 10 自版本 1809 和 Windows 11 上可用。)
C:\WINDOWS
存储在 Windows 注册表中并在编辑system 时显示
Path
而不是
%SystemRoot%
表示安装程序由于替换了原始文件夹,可执行文件或脚本没有很好地更新system
Path
扩展版本引用环境变量
SystemRoot
的路径。这对于这些文件夹路径并不重要,但可能对其他文件夹路径有害。
Path
环境变量之一中不应存在多次。删除
Path
以及system
Path
中的所有重复项。
Path
环境变量包含三个时间:
Path
中的文件夹路径不应再次存在于user
Path
中,当然也不应再次存在于system
Path
中。
Path
中可以列出不带或带反冲的文件夹路径。我更喜欢
Path
末尾没有反斜杠的文件夹路径,因为这样可以减少将来通过批处理脚本使用命令
Path
更新
reg
时遇到的麻烦。
Path
应仅包含文件夹路径,而不是完全限定的文件名。 所以
C:\Users\Kyle.Dixon\Documents\R\R-3.5.2\bin\R.exe
在
Path
中完全是无稽之谈。
Path
环境变量后,system
Path
中的文件夹路径应类似于:
C:\Program Files
并且不要使用
%ProgramFiles%
,除了有
C:\Program Files\dotnet
和
C:\Program Files (x86)\dotnet
,我不知道,因为我的Windows计算机上没有这样的目录。有关原因,请参阅 Microsoft 文档页面WOW64 实施详细信息。
userPath
最终应该是这样的: