如何将所有文件名从不同的文件夹更改为:
C:\Workspace\1\a.jpg
C:\Workspace\2\ab.doc
C:\Workspace\3\abc.jpg
到
C:\Workspace\1\scan.jpg
C:\Workspace\2\scan.doc
C:\Workspace\3\scan.jpg
答案 0 :(得分:0)
以下是此任务的批处理文件:
@echo off
set "SourceFolder=C:\Workspace"
if not exist "%SourceFolder%\1\*.jpg" goto EndBatch
for %%I in ("%SourceFolder%\1\*.jpg") do (
ren "%%I" "scan.jpg" 2>nul
if errorlevel 1 goto EndBatch
goto RenameDOC
)
:RenameDOC
for %%I in ("%SourceFolder%\2\*.doc") do (
ren "%%I" "scan.doc" 2>nul
goto RenameJPG
)
:RenameJPG
for %%I in ("%SourceFolder%\3\*.jpg") do (
ren "%%I" "scan.jpg" 2>nul
goto EndBatch
)
:EndBatch
set "SourceFolder=
如果批处理文件无法在目录C:\Workspace\1
中找到非隐藏的* .jpg文件,则该文件无效。
它将目录C:\Workspace\1
中第一个找到的* .jpg文件重命名为scan.jpg
。如果由于缺少此操作的NTFS或文件访问权限而未成功,或者此目录中已存在文件scan.jpg
,则批处理文件不会执行任何操作。
成功将目录C:\Workspace\1
中的第一个 * .jpg文件重命名为scan.jpg
后,批处理文件会搜索第一个非隐藏* .doc目录C:\Workspace\2
中的文件并将其重命名为scan.doc
。独立于此重命名操作的结果,批处理文件继续在下一个目录C:\Workspace\3
中重命名文件,在该目录上再次只有第一个非隐藏* .jpg文件重命名为scan.jpg
而不进行评估重命名操作的结果。
最后,批处理文件删除在顶部定义的环境变量并退出。
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
echo /?
for /?
goto /?
if /?
ren /?
set /?
答案 1 :(得分:0)
get-childItem -recurse | Where {$_.extension -eq ".jpg"} | rename-item -NewName { "scan.jpg" }
我用这种方法来解决这个问题。希望它的工作也适用于其他人。我正在使用powershell。