在Check if a file exists in zip archive之后,我有一个处理目录中某些文件的批处理文件,我在其中使用了这一行:
call zipjs.bat list -source "C:\myZip.zip" -flat yes|find /i "filename" && (
echo file exists
color
)|| (
echo file does not exist
)
我在与我的批处理文件相同的目录中有zipjs.bat
:
桌面 - > MyBatch.bat
桌面 - > zipjs.bat
MyBatch.bat
称zipjs.bat
并在我的机器上正常工作。
问题:
我可以访问虚拟机来测试我的代码,它是一个运行有一些软件的Windows桌面。没有什么花哨。在那里,我还将myBatch.bat
和zipjs.bat
放在同一目录下(桌面)。但是,每当我运行myBatch
时,它都会提示“zipjs.bat不是一个可识别的命令”。这就像myBatch
找不到zipjs.bat
。可能是什么问题?
如果使用管理员权限启动bat,它将在system32文件夹中启动。尝试在文件的开始处设置cd /d "%~dp0"
(cd命令更改工作目录和/d
开关以防万一需要在不同的驱动器之间跳转)。
%0
参数是批处理文件本身(如果没有使用shift
命令),所以使用%~dp0
你得到驱动器和path to the file(没有文件名)。