脚本编写的新手,我一直在研究其他主题,并尝试了不同的脚本,但没有成功。
我想将“ _discard”添加到“项目”文件夹中不同子目录中的多个文件中
原始文件名如下:
first-file_us-tower_10.jpg
first-file_us-tower_tr_10.jpg
first-file_us-bridge_10.jpg
first-file_us-bridge_gps_10.jpg
first-file_us-bridge_tr_10.jpg
first-file_us-river_bbnf_10.jpg
我想要的是以下内容:
first-file_us-tower_10_discard.jpg
first-file_us-tower_tr_10_discard.jpg
first-file_us-bridge_10_discard.jpg
first-file_us-bridge_gps_10_discard.jpg
first-file_us-bridge_tr_10_discard.jpg
first-file_us-river_bbnf_10_discard.jpg
这是我试图在ps1脚本中使用的内容,但无法完成。
$dir = "C:\pics\projects"
$file = "*_us*.jpg"
$copy = "*_us*_discard.jpg"
get-childitem -Path "$dir" | where-object { $_.Name -like "$file" } | %{rename-item -path $dir$_ -newname $d"_"$_}
不幸的是没有成功。如果可以在批处理脚本中实现此功能,也欢迎使用,但我对批处理不熟悉。
任何帮助将不胜感激
答案 0 :(得分:1)
您阅读过文档吗?有一个示例几乎可以完全按照您的意图进行操作。示例4:
Get-ChildItem *.txt | Rename-Item -NewName { $_.name -Replace '\.txt$','.log' }
PS C:\> (Get-ChildItem "C:\pics\projects").FullName
C:\pics\projects\first-file_us-bridge_10.jpg
C:\pics\projects\first-file_us-bridge_gps_10.jpg
C:\pics\projects\first-file_us-bridge_tr_10.jpg
C:\pics\projects\first-file_us-river_bbnf_10.jpg
C:\pics\projects\first-file_us-tower_10.jpg
C:\pics\projects\first-file_us-tower_tr_10.jpg
PS C:\> Get-ChildItem "C:\pics\projects" | Rename-Item -NewName {$_.Name -Replace "\.jpg$","_discard.jpg"}
PS C:\> (Get-ChildItem "C:\pics\projects").FullName
C:\pics\projects\first-file_us-bridge_10_discard.jpg
C:\pics\projects\first-file_us-bridge_gps_10_discard.jpg
C:\pics\projects\first-file_us-bridge_tr_10_discard.jpg
C:\pics\projects\first-file_us-river_bbnf_10_discard.jpg
C:\pics\projects\first-file_us-tower_10_discard.jpg
C:\pics\projects\first-file_us-tower_tr_10_discard.jpg
我删除了Where-Object
,因为它与您示例中的所有文件名都匹配。
答案 1 :(得分:0)
同样,子文件夹中的文件也应重命名并
您肯定要排除已经附加了_discard
的文件
$dir = "C:\pics\projects"
$file = "*_us*.jpg"
$append = "_discard"
Get-ChildItem "$dir\$file" -Recurse -File |
Where-Object BaseName -notmatch $append |
Rename-Item -NewName {"{0}{1}{2}" -f $_.BaseName,$append,$_.Extension} -WhatIf
如果输出看起来正常,请删除结尾的-WhatIf