文件夹名称-用空格代替句号

时间:2019-01-17 12:29:27

标签: powershell

我有一个文件夹,其子文件夹名称与此类似:

The.Train.To.Morning.Town

我想用空格替换所有<xcdg:Column FieldName="Start" CellEditorDisplayConditions="Always"> <xcdg:Column.CellValidationRules> <validation:StartTimeValidation/> </xcdg:Column.CellValidationRules> <xcdg:Column.CellEditor> <xcdg:CellEditor> <xcdg:CellEditor.EditTemplate> <DataTemplate> <xctk:TimePicker Value="{xcdg:CellEditorBinding}" UpdateValueOnEnterKey="True" ShowButtonSpinner="False" TimeInterval="0:15" Format="Custom" FormatString="HH:mm" ValueChanged="UpDownBase_OnValueChanged" /> </DataTemplate> </xcdg:CellEditor.EditTemplate> </xcdg:CellEditor> </xcdg:Column.CellEditor> </xcdg:Column>

我尝试使用此

.

但是我然后得到一个错误,我在哪里出错?谢谢

  

Rename-Item:路径不是合法形式。在第5行:char:1 + Rename-Item -NewName {$ _。Name -replace'。',''}

1 个答案:

答案 0 :(得分:0)

@Olaf在评论中正确无误,应该将其提交为答案。 PowerShell -replace运算符将regular expression作为搜索参数;由于.是'match any character'的正则表达式,因此您需要使用反斜杠\$_.Name -replace '\.',' '

对其进行转义。

您在问题的注释中指出这也将删除文件扩展名的.;最好将原始扩展名中涉及到扩展名的信息包括在内。但是,关于此,@ LotPings提供了一个很好的解决方案来处理这种情况({$_.BaseName.replace('.',' ')+$_.Extension})-请注意.Replace() method(注意:链接是指向SS64;我找不到Microsoft Docs页面对此)不使用正则表达式,因此.不需要转义。