批处理文件在我的桌面上运行正常,但在虚拟桌面上运行不正常为什么呢?

时间:2017-12-27 15:13:15

标签: windows batch-file cmd

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.batzipjs.bat放在同一目录(桌面)下。但是,每当我运行myBatch时,它都会提示" zipjs.bat不是可识别的命令"。就像myBatch无法找到zipjs.bat一样。可能是什么问题?

1 个答案:

答案 0 :(得分:2)

如果使用管理员权限启动bat,它将在system32文件夹中启动。尝试在文件的开头设置cd /d "%~dp0"(cd命令更改工作目录,/d开关以防万一需要在不同的驱动器之间跳转。“

%0参数是批处理文件本身(如果未使用shift命令),因此使用%~dp0获取驱动器path to the file(不文件名)。