2014-02-19 63 views
0

我是批處理腳本的新手。我要編寫一個批處理腳本,它將搜索一個子目錄,然後比較目錄中存在的文件的擴展名。 例如,對於以下結構:編寫批處理腳本以查找子目錄

D:\Batch_script\unknown_dir_name\destiantion1\dummy.txt

我的腳本應該先找到目錄destiantion1,然後,如果它存在,它應該尋找dummy.txt文件。

可能嗎?任何人都可以請建議我一個方法來做到這一點。

感謝

回答

1
for /f "tokens=*" %%f in (
    'dir /ad /s /b "d:\Batch_script\destiantion1"' 
) do if exist "%%~f\dummy.txt" echo %%~f 

對於每個命名下d destiantion1目錄:\ batch_script,如果它包含一個dummy.txt文件,回聲安慰

編輯 - 適應評論

for /f "tokens=*" %%f in (
    'dir /ad /s /b "d:\Batch_script\destiantion1"' 
) do if exist "%%~f\dummy.txt" (
    dir /a-d /b "%%~f\dummy.txt" 2>nul | find "dummy.txt" > nul && echo %%~f 
) 

fordir命令在搜索時不區分大小寫,因此請使用過濾器。如果找到字符串,則不會設置錯誤級別並執行&&之後的代碼。

另一種方法是處理文件搜索的adecuated文件夾的完整列表/文件

for /f "delims=" %%f in (
    'dir /a-d /s /b "d:\batch_script\dummy.txt" ^| findstr /l /e /c:"\destiantion1\dummy.txt"' 
) do echo %%~dpf 
+0

由於它的工作很大。有沒有什麼方法可以用「if exists」命令檢查區分大小寫的文件?因爲我的dummy.txt文件應該總是使用小寫字母。 – user3327200

+0

非常感謝,我現在都準備好和腳本一起去了:) – user3327200