2017-08-28 57 views
0

我想創建一個批處理文件來更改文件夾中的每個PDF文件。更改批量輸入的任何文件名稱

的PDF有一個隨機數,應該是這樣的後:

id_3Q09_iid_1_dat_04-01-2017_nm-SUB_certificate.pdf 

,我想輸入「3Q09」「1」(IDD)和日期。

所以當我打開批處理文件時,我得到一個關於ID,IDD和日期應該是什麼的問題,它會更改文件夾中的每個PDF文件。

我嘗試了一些劇本,但他們都試圖重命名已知文件 這是我使用的腳本:

@Echo off 
setlocal enabledelayedexpansion 
set /p ID="Product ID: " 
set /p IID="IID: " 
set /p Datum="Keuringsdatum: " 
Rn "!Name:id_%ID%_%IID%_dat_%Datum%_nm-SUB_certificate.!") 
+0

你能告訴我們,你已經嘗試了劇本? – Lamar

+0

請顯示您提到的腳本的內容... – MarkusEgle

+0

我已將代碼添加到orignal帖子@Lamer – Nextria

回答

0

我不太清楚,如果這正是你打算做的,但您可以使用for-loop遍歷特定文件夾內的所有PDF文件。

批處理文件

@(setlocal disabledelayedexpansion 
    set "source=folder\*.pdf" 
    set /p "id=Product ID: " 
    set /p "iid=IID: " 
    set /p "dat=Date: " 
    prompt $ 
) 

@for %%e in ("%source%") do rename "%%~fe" "id_%id%_iid_%iid%_dat_%dat%_nm-%%~nxe" 
@prompt 

例如輸出

Product ID: 3Q09 
IID: 1 
Date: 04-01-2017 

rename "d:\pdf\folder\SUB_certificate.pdf" "id_3Q09_iid_1_dat_04-01-2017_nm-SUB_ 
certificate.pdf" 

rename "d:\pdf\folder\test (!!^^!!) file.pdf" "id_3Q09_iid_1_dat_04-01-2017_nm-t 
est (!!^^!!) file.pdf" 

我希望他們能夠剪切並粘貼到其他文件夾重命名後。 我可以用MV命令做這個嗎?

如果您想在重命名文件的同時將文件移動到另一個文件夾,則可以簡單地使用move命令。注意從move命令的幫助信息如下:

如果只移動一個文件,你還可以包括:如果 你想,當你將它重命名的文件的文件名。

批處理文件(移動,而不是重命名)

@(setlocal disabledelayedexpansion 
    set "source=folder\*.pdf" 
    set "dest=output" 
    set /p "id=Product ID: " 
    set /p "iid=IID: " 
    set /p "dat=Date: " 
    prompt $ 
) 

@for %%e in ("%source%") do move "%%~fe" "%dest%\id_%id%_iid_%iid%_dat_%dat%_nm-%%~nxe" 
@prompt 
+0

你好@treintje非常感謝你,完美的作品! – Nextria

+0

您好@treintje是否可以將它輸出到其他文件夾? – Nextria

+0

@Nextria不客氣。 「將其輸出到其他文件夾」意味着什麼?你的意思是你想移動文件而不是重命名它們(剪切和粘貼)或將它們複製到另一個名稱不同的文件夾中? – treintje