在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
一样。可能是什么问题?
答案 0 :(得分:2)
如果使用管理员权限启动bat,它将在system32文件夹中启动。尝试在文件的开头设置cd /d "%~dp0"
(cd命令更改工作目录,/d
开关以防万一需要在不同的驱动器之间跳转。“
%0
参数是批处理文件本身(如果未使用shift
命令),因此使用%~dp0
获取驱动器path to the file(不文件名)。