我试图删除所有内容(在我运行此命令时,当我意外地在我的文件名中添加了大量空格时,在文件名中删除了
Dir | Rename-Item -NewName {$ _。Name -replace“()”,“”}
在电源外壳中。我想它与没有明确表示“()”字符不是某个表达式的一部分并且我没有意识到它有关。我有一大堆文件,例子名称为
H o w T o C r a f t()[。zip
或
V e d e o G a m e()[.zip
每个字母之间有一个空格,每个字之间有两个空格 我现在需要转换成
如何Craft.zip
Video Game.zip
我一般都是使用正则表达式和power shell的新手。如果有人可以帮我使用命令来删除单词之间的双倍间距,字母和任何字符实例之间的单个间距(以及所有文本后面的字符)(它将解决我的所有问题。
答案 0 :(得分:1)
您可以使用\s
正则表达式空白字符类替换空格Trim()
以删除末尾的特殊字符,并在每个单词后面加this brilliant regex pattern引入空格:
$Files = Get-ChildItem .\ -Name
$CamelCasePattern = '([A-Z])([A-Z])([a-z])|([a-z])([A-Z])'
$CamelCaseReplace = '$1$4 $2$3$5'
foreach($FileName in $Files){
# Get the files base name
$basename = [System.IO.Path]::GetFileNameWithoutExtension($FileName)
# Remember the extension
$extension = $FileName.Substring($basename.Length)
# Remove all whitespace
$basename = $basename -ireplace '\s',''
# Remove excess characters at the end
$basename = $basename.TrimEnd('()[')
# introduce space after each capitalized word
$basename = $basename -creplace $CamelCasePattern,$CamelCaseReplace
# return correct file name
"$basename$extension"
}
答案 1 :(得分:0)