我有一个文件夹,里面有 100 张发票,它们前面都需要加上前缀“INVOICE_”。我尝试运行命令,但似乎不起作用。
我试过了ren * INVOICE_*.PDF
,但不起作用。有人能帮我解决这个问题吗?
答案1
一个快速而简单的批处理文件,可以完成您想要的操作。
@echo off
::Create a temporary filename.
set _tmpfile=%random%
::Store the prefix you want to use in the rename in a variable
set _prefix=INVOICE_
::List of files to be renamed are held in the _tmpfile
::so be sure that you are in the correct folder/directory.
dir *.pdf /b>%_tmpfile%
::Now, loop through the _tmpfile and rename each file using the _prefix variable
:: Remove the ECHO below in order for this to work.
for /f %%x in (%_tmpfile%) do ECHO ren %%x %_prefix%%%x
::Delete the _tmpfile
if exist %_tmpfile% del %_tmpfile%
更新:批处理文件不会重命名文件。它只会显示如果您从“for /f in %%x”行中删除“ECHO”字符串,它将运行的命令。然后批处理文件将重命名文件。
希望这可以帮助!
答案2
这任命令的工作方式与您预期的不同;单击其链接以了解更多信息。第三方文件重命名实用程序将使此操作更加容易。有许多可用的开源免费程序,例如
https://sourceforge.net/projects/renameit/
http://file-folder-ren.sourceforge.net/
https://sourceforge.net/projects/mfrv02/
https://sourceforge.net/projects/multifilerename/
https://sourceforge.net/projects/freefilerenamer/
https://sourceforge.net/projects/personalrenamer/
http://regexrenamer.sourceforge.net/
http://rename.sourceforge.net/
等等。
这里无法推荐特定的应用程序,但是https://softwarerecs.stackexchange.com是询问应用程序的首选场所。
答案3
你的问题标题是“在 Windows 中”,所以我将忽略命令执行程序标签并为您提供 PowerShell 解决方案。进入 PowerShell(powershell
在cmd
提示符下输入,或从菜单运行)并输入
dir *.pdf | rename-item -newname {$_.name -replace "^","INVOICE_"}
似乎不言自明:获取每个 PDF 文件的名称并将其重命名为新名称,该新名称由 ^
用“ ”替换旧名称的开头(用正则表达式表示)而成INVOICE_
。
几乎逐字逐句地复制自如何在 Windows 中批量重命名多个文件在 How-To Geek。
答案4
尝试这个命令
ren *.pdf INVOICE_*.pdf