【发布时间】:2018-12-30 07:03:03
【问题描述】:
尝试从同一目录中的大量文件中删除前几个字符,但文件名中的特殊字符出现问题。我还需要使用通配符来指定要删除的文本,因为该文本可能包含一位或两位数字。
我是使用 v2.0.1.1 的新手。
一个示例文件名是
(2) S17- 22429 E1_[49946,12147]_composite_image.jpg
我需要删除括号中的初始数字以及以下空格。括号中的数字可能是一位或两位数,因此需要通配符。
生成的文件名应该是:
S17- 22429 E1_[49946,12147]_composite_image.jpg
所有文件都将包含由方括号中的“,”分隔的坐标,并且所有文件都是 .jpg,但最终名称中的其他所有内容都会有所不同。
一直在阅读各种关于问题点点滴滴的文章,尝试了下面的代码。
问题似乎与方括号和逗号有关,但只有我能找到的技术(``[ 等)告诉你如何在搜索字符串中处理它们,而不是在你所在的字符串部分不感兴趣。-literalpath 似乎也没有帮助。
dir | rename-item -NewName { ($_.name) -Replace("\(*\) ","")}
并且已经尝试了对这个基本代码的各种修改。
遍历每个文件,但都包含:
Rename-Item : Cannot rename because item at 'Microsoft.PowerShell.Core\FileSystem::C:\...\(2) S17- 22429 E1_[49946,12147]_composite_image.jpg' does not exist.
At line:1 char:19
+ dir | rename-item <<<< -NewName { ($_.name) -Replace("\(*\) ","")}
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
【问题讨论】:
标签: powershell substring wildcard file-rename