我想创建一个批处理文件来更改文件夹中的每个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 :(得分:0)
我不太确定这是否与您打算做的完全相同,但您可以使用for循环来遍历特定文件夹中的所有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