批量替换文件名中的字符
Batch Replace Character in File Names
我有大约 600 个视频文件,标题中带有 $ 特殊字符。
我想批量替换成字母s.
我在下面在线找到了 powershell 代码,用其他字母替换字母时效果很好,但在尝试替换 $ 特殊字符时失败
get-childitem -recurse | rename-item -newname { $_.name -replace "",""}
我尝试使用下面的代码,它最终在文件类型的末尾添加了一个 s 而不是替换 $
get-childitem -recurse | rename-item -newname { $_.name -replace "$","s"}
$hortvid.mp4 变为 $hortvid.mp4s 而不是 shortvid.mp4
关于如何使其正常工作的任何想法?
只需使用\
转义字符:
当目录中的运行行:
get-childitem -recurse | rename-item -newname { $_.name -replace "$","s"}
输入文件:
$hortvid.mp4
输出文件已重命名:
shortvid.mp4
$ 用于在 powershell 中指定变量。带双引号的字符串在 powershell 中是这样计算的:
$variable1="Hello"
$variable2="$variable1 world"
$variable2
如果您不想将一个字符评估为双引号字符串,您可以像@lww 提议的解决方案一样对您的字符进行反斜杠。或者简单地说,您可以使用简单的引号。
像这样:
Get-ChildItem -recurse | Rename-Item -Newname { $_.Name -replace '$', 's'}
我有大约 600 个视频文件,标题中带有 $ 特殊字符。
我想批量替换成字母s.
我在下面在线找到了 powershell 代码,用其他字母替换字母时效果很好,但在尝试替换 $ 特殊字符时失败
get-childitem -recurse | rename-item -newname { $_.name -replace "",""}
我尝试使用下面的代码,它最终在文件类型的末尾添加了一个 s 而不是替换 $
get-childitem -recurse | rename-item -newname { $_.name -replace "$","s"}
$hortvid.mp4 变为 $hortvid.mp4s 而不是 shortvid.mp4
关于如何使其正常工作的任何想法?
只需使用\
转义字符:
当目录中的运行行:
get-childitem -recurse | rename-item -newname { $_.name -replace "$","s"}
输入文件:
$hortvid.mp4
输出文件已重命名:
shortvid.mp4
$ 用于在 powershell 中指定变量。带双引号的字符串在 powershell 中是这样计算的:
$variable1="Hello"
$variable2="$variable1 world"
$variable2
如果您不想将一个字符评估为双引号字符串,您可以像@lww 提议的解决方案一样对您的字符进行反斜杠。或者简单地说,您可以使用简单的引号。 像这样:
Get-ChildItem -recurse | Rename-Item -Newname { $_.Name -replace '$', 's'}