2011-12-06 72 views
0

你好堆棧溢出的人!使用批處理文件創建/放置/保存/存儲在目錄/文件夾中時打開新文件?

我在網上搜了很多,但沒有得到任何相關的東西。

我在寫一個腳本,一旦放入目錄就會直接打開一個文件。假設我有這個目錄:

F:\Files 

現在我下載一個文件到該文件夾​​。下面將創建:

F:\Files\download.zip REM This is the actual file, but 0 KB 
F:\Files\download.part REM This is the content of the *.zip, until it is fully downloaded. 

所以,我可以使用哪些腳本打開download.zip時,其大小等於大於1個字節大?

回答

1

假設%1是傳遞給腳本作爲參數的文件名,你可以做這樣的事情:

IF %~z1 GTR 0 (
    commands to process the file 
) 

%~z1計算爲在%1指定的文件的大小。 GTR表示大於,所以條件檢查大小是否大於0,如果是,則執行commands to process the file

+0

謝謝。但我需要的是將文件作爲參數的腳本...... – mojamoja

+0

我推測您已經完成了該部分,現在我可以看到,現在做這件事有點不成熟。但除此之外,我必須說你的問題對於你現在已經掌握的東西有些模糊。事實上,從某個角度來看,你可能會從你的問題中得出結論,你現在一無所有。無論哪種方式,你真的應該一次問一件事。這對於人們來說不那麼令人沮喪,並且會給予你更多的機會來獲得每個問題的最佳答案。 –

0

這個巴赫文件應該做你想做的(不知道它是否可以在所有版本的Windows上運行)。

它使用Andriy M的腳本,但添加了您請求的功能。

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET dirname=F:\Files 

:Begin 
CLS 
ECHO %TIME% 
FOR /R "%dirname%\" %%a IN (*.zip) DO CALL :process1 %%a 
ping.exe localhost -n 11 >nul 
GOTO Begin 

:process1 
IF %~z1 GTR 0 "%1" 
GOTO :EOF 

ping.exe localhost -n 11 >nul只是一個延遲,這樣就可以讓批處理文件運行,它會每隔10秒鐘循環與-n 11導致本地主機的11坪以1秒的時間間隔與第一定義一微秒後就已經成功。

我已經添加了命令行ECHO %TIME%,這樣就可以看出它仍在工作,因爲此時間值會更新每個循環迭代。

該批次解決方案存在缺陷。如果發生下一次循環運行時ZIP文件仍在目錄中,則會再次打開ZIP文件。

相關問題