2017-03-02 49 views
0

我想將文件「TF-ICOT160017_JATS.xml」重命名爲「TF-ICOT160017.xml」。請檢查以下程序併爲此概念提供正確的批處理程序。我想用Regex概念重命名一個文件

@echo off 
set /p file=Enter File Path: 
:Main 
echo. 
echo 1. Rename 
echo 2. Exit 
echo. 
set /p choice=Enter Your choice: 
IF %choice% == 1 goto File_Rename 
IF %choice% == 2 exit 
:File_Rename 
ren TF-[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]_JATS.xml TF-[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9].xml 
goto Main 
+0

我建議使用文件管理器Total Commander(共享軟件),它內置了一個多重命名功能,它支持用於重命名文件和文件夾的Perl正則表達式。最大的好處是你可以在重命名完成之前看到選定的文件(或文件夾)如何在沒有任何編程技能的情況下被重新命名。 Total Commander在重命名參數下面的文件/文件夾列表中立即顯示重命名參數的每個修改後的預期結果,供用戶驗證。 Total Commander甚至可以在完成後撤消重命名。 – Mofi

+0

@dbenham創建了一個非常酷的混合[腳本](http://www.dostips.com/forum/viewtopic.php?t=6081)重命名文件定期爆炸。 – Squashman

+0

無論以前的答案和建議如何,如果您的文件名都符合相同的格式,使用'SET'命令的子字符串函數或'FOR/F'命令可以很容易地使用下劃線作爲分隔符。 – Squashman

回答

0

它看起來像一個單一的命令行可用於該文件重命名操作:

ren TF-??????????_JATS.xml TF-??????????.xml 

還有一個提示:

不要使用set /P爲讓兩者之間的用戶選擇選項。用戶可以直接點擊RETURNENTER不會意外輸入任何內容,並且您的批處理文件會因語法錯誤而退出。用戶還可以自由輸入除1或2以外的任何值,並且批處理文件再次失敗。

使用命令CHOICE。打開命令提示符窗口並運行choice /?以獲取有關此命令的幫助。

@echo off 
:Main 
echo/ 
echo 1. Rename 
echo 2. Exit 
echo/ 
choice /C12 /N "Please make your choice: " 
if errorlevel 2 exit /B 
ren TF-??????????_JATS.xml TF-??????????.xml 
goto Main 
+0

非常感謝您的先生。 –

+0

我知道有一個使用問號進行重命名的警告。它並不總是防彈的。試圖再次找到該鏈接。我幾個星期前在另一個論壇上發佈了它,或者它可能在這裏。 – Squashman