2017-04-19 101 views
1

我需要一個批處理文件來刪除同一目錄中的多個文件名中的某個部分。刪除部分的文件名

例子: 我有超過80000的標題像這樣的文件:

Test Title, The - Conspiracy.zip 

我需要「在」文件名中要走的標題像這樣刪除:

Test Title - Conspiracy.zip 

PS,我只需要這個批處理文件!

任何幫助非常感謝! THANX !!!

回答

-1

你可以像循環一樣循環訪問文件目錄的內容。 Batch script loop

然後,當你循環播放時,可以替換文件名的內容。看看這個:String replacement in batch file

對不起,沒有更具體的批處理腳本是不是我的東西。但是這個邏輯應該證明至少是有幫助的。有人發佈了更好的東西。

+0

我覺得OP想重命名文件,而不是改變文件中的文本。 – TinkerTenorSoftwareGuy

+1

你說得對。最終文件將從文件名中間刪除「,The」,並在開頭添加「The」。 –

+1

感謝您的跟進。因爲在批處理中沒有真正的工作,我想我會解決它。有時候人們對這裏太關鍵了,我只是儘可能地提供一個答案。 –

0

如果您可以使用Unix命令shell,則可以在循環中使用mv命令。

你可以下載Cygwin的或Git的Bash或如果您有Windows 10,你可以做在命令行這一權利(假設你已經更新):

創建一個文件,這樣

#!/bin/bash 
for file in *.zip 
do 
    removedPart=", The" 
    mv "${file}" "${file/removedPart/}" 
done 

您可能需要首先在單個文件上測試該命令,以確保它能做到您想要的。即

file=Test Title, The - Conspiracy.zip 
removedPart=", The" 
mv "${file}" "${file/removedPart/}" 
+0

這是假設你想重命名文件,而不是改變文件內的文本。這對我來說最有意義,考慮到這些是zip文件。 – TinkerTenorSoftwareGuy

+0

實際上這裏有大約75種不同的擴展名,但只是我可以使用wildacard來照顧它們。 –

2

我找到了我需要使用的東西,並且感謝大家的快速回復和幫助!

@echo off &setlocal 
set currentDirectory="%CD%" 
for /f "delims=" %%a in ('dir /b /a-d *, The*.*') do (
set "fname=%%~a" 
setlocal enabledelayedexpansion 
set "nname=!fname:, The=!" 
ren "!fname!" "!nname!" 
endlocal 
)