2013-03-28 70 views
1

所以...是的,我很新手。仍盡力解釋儘可能好。 但需要幫助,諸如從C:驅動器(批量)找到確切的文件, 並重命名它。 也想知道如何從C中找到文件並刪除它。 (2個問題在1線......)批處理:找到文件並將其重命名/找到文件並將其刪除

問題1.例如:我想找到的文件名爲從C「text1.txt」:提升一批, 如果成功發現,其重命名爲「text2.txt」 。

問題2:例如:我想從C:驅動器批量找到名爲「image1.jpg」的文件,如果找到成功,則刪除它。

或者這可以如何批量完成? del image1只檢查已存在的相同文件夾,與重命名相同。如何從整個C盤中批量查找這些文件? 只是例子。 2個小東西來解決,通過批量搜索確切的文件進行重命名和刪除。如何批量刪除子文件夾中的文件? 但對不起我的低訣竅,必須從某個地方開始這些事情。

回答

1

哦,有一些好聽的程序員真好!我認識的大多數程序員都是UGLY

for /f "delims=" %%i in ('dir /s /b /a-d "text.txt"') do (ren "%%i" text2.txt) 

應該做重命名任務。您應該將驅動器和起始目錄預先添加到文件名中,否則它將重命名所有子目錄中的所有text.txt文件。因此...dir /s/b "c:\users\kaster\text.txt"...將處理"c:\users\kaster\",所有下面的目錄,並重新命名所有命名text.txt到新名稱的文件。

其工作原理是在/b基本模式進行DIR掃描(即文件名只)/s包括子目錄/a-d忽視了一個名爲「的text.txt」匹配的文件目錄名 - 和完整的文件名被分配到%%i。該delims條款可以確保任何空格不會被解釋爲分隔符。

參見

`FOR ?` 

從提示爲文檔。

和如果直接從提示執行此,改變每個%%%

第二個命令是基本上easire

del /s "image1.jpg" 

同樣,在前面加上起始路徑,並且是非常,非常小心。這將刪除所有在與指定目錄下匹配「image1.jpg」。

自始至終,引用文件名確保spaces在文件或數據夾被正確處理。

+0

感謝您的提示!順便說一句,你知道爲什麼這個重命名的事情只有當你不作爲管理員運行批處理?當以admin身份運行這個重命名批處理文件時,它會顯示「找不到文件」,它只在正常運行時才起作用。如果你知道如何使它在以admin身份運行時也能正常工作,那麼我怎樣才能將它設置爲一直以admin的身份運行,甚至無法在正常模式下運行它,僅適用於管理員。 – Kaster

1

試試這個。如果輸出正常,則從行中刪除echo命令。

for /f "delims=" %%i in ('dir /s /b /a-d \file1.txt \image1.jpg') do if "%%~nxi"=="file1.txt" (echo ren "%%~i" "text2.txt") else if "%%~nxi"=="image1.jpg" echo del "%%~i" 
+0

我可以在2個不同的命令中有這些嗎?另一個用於查找和重命名命名文件,另一個用於查找和刪除命名文件?用兩個不同的命令來弄清楚這兩者的目的會容易一點。 – Kaster

相關問題