【发布时间】:2019-03-16 13:59:33
【问题描述】:
我在同一个文件夹中有大量类似名称的文件:
- myPic_fr.png
- myPic_it.png
- myPic_gr.png
我想将它们重命名为:
- myPic_fr_1080.png
- myPic_it_1080.png
- myPic_gr_1080.png
然后将它们复制到这样的新文件夹中:
- ../fr/myPic_fr_1080.png
- ../it/myPic_it_1080.png
- ../gr/myPic_gr_1080.png
如何创建批处理脚本或 powershell 脚本来完成这项工作?
编辑: 我试过这个批处理脚本代码来做重命名工作(Thanks @RoXX):
@echo off
setlocal EnableDelayedExpansion
SET oldPart=.png
SET newPart=_1080.png
for /f "tokens=*" %%f in ('dir /b *.png') do (
SET newname=%%f
SET newname=!newname:%oldPart%=%newPart%!
move "%%f" "!newname!"
)
但是对于“复制”部分,我不知道该怎么做!也许需要正则表达式?
谢谢
【问题讨论】:
-
您需要只在目标文件夹中重命名它们,还是在两个地方都重命名?
-
我会先尝试阅读文档:Get-ChildItem、Copy-Item 和Rename-Item,然后尝试自己编写一些代码。如果/当您在代码中遇到任何问题时,请说明您尝试了哪些方法,以及为什么它对您不起作用。
-
在这两个地方。
-
您对批处理文件进行了过度编码。阅读
FOR命令的帮助文件的最后一部分。从文件名中去除文件扩展名非常容易,而无需进行字符串替换。
标签: powershell batch-file powershell-v5.1