将 CMD CD 设置为运行批处理的目录

将 CMD CD 设置为运行批处理的目录

我正在尝试创建一个批处理脚本,它将在不同的环境中打开一个程序(这样我就可以制作它的便携版本)。

我使用这个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来显示您正在处理的文件夹。

相关内容