我正在尝试创建一个批处理脚本,它将在不同的环境中打开一个程序(这样我就可以制作它的便携版本)。
我使用这个set APPDATA=%CD%\data
来告诉它这样做。我面临的问题是批处理启动时出现以下错误:
CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.
我想使用命令cd
将其更改为批处理目录。有没有简单的方法可以做到这一点?
答案1
如果它在网络驱动器上,您可能仍会遇到问题,除非您映射驱动器,但为什么不执行以下操作呢?
APPDATA=%~dp0
cd /d %APPDATA%
通过执行 cls 您也可以清除错误,但是如果脚本从 UNC 路径运行,您将收到此错误,您只需映射它或 CLS 出错误。
答案2
尝试将其放入批处理中:
pushd "%~p0" 2> nul
pushd "\\%~p0" 2> nul
如果从 UNC 文件夹启动,第一行将失败,但第二行将起作用。
如果从驱动器映射文件夹启动,第二行将失败,但第一行将起作用。
无论哪种方式,当前文件夹将是批处理文件所在的位置,您可以从那里更改文件夹。
稍后,您可以使用cd
来显示您正在处理的文件夹。