2017-12-27 335 views
1

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。可能是什么问题?

+0

这是否需要一个路径? – Lexib0y

+0

@ Lexib0y嗯,为什么它没有在我的桌面上的路径工作? –

+0

我的意思是路径环境变量,在桌面上与VM相同吗?但是你也可以尝试把它放在批处理文件中。除非您从该目录中的提示符运行它,或者在运行批处理文件的快捷方式中设置工作目录,否则您需要一个路径环境变量。 (你的桌面默认不在路径中,你也不能确定它是工作目录) – Lexib0y

回答

2

如果蝙蝠以管理员权限启动,它将在system32文件夹中启动。尝试在文件开始时设置cd /d "%~dp0"(cd命令更改工作目录,并且/d开关在需要在不同驱动器之间跳转时)。

%0参数是这个批处理文件(如果不使用shift命令),于是有了%~dp0你的驱动器和path to the file(无文件名)。

+1

另外值得一提的是,正如@Mofi提到的那样,使用''call%〜dp0zipjs。蝙蝠“'而不是'调用zipjs.bat'也可以 –

相关问题