2017-12-27 332 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'也可以 –

相關問題