我有一个大文件夹,里面有其他文件夹和文件,我想只在文件名的[]之间保留一个特定文件类型的代码。下面是一个示例:标题[ID].txt所有的文件都是这样的。我想所有的txt文件得到的只是作为名称的ID。我认为powershell可以帮助我,但我不知道如何。有什么需要帮忙的吗?太菜鸟在PS能够做任何事情而不冒着搞砸了一切
9o685dep1#
您可以给予以下方法,首先使用Get-ChildItem查找名称中包含[和]的任何文件或文件夹,然后您可以将该对象通过管道传输到Rename-Item,在那里您可以使用正则表达式模式提取括号中的内容作为文件或文件夹的“新名称”。-WhatIf开关将通知您将要执行的操作,您应该在确认代码将执行您期望的操作后删除它。
Get-ChildItem
[
]
Rename-Item
-WhatIf
Get-ChildItem path\to\sourceFolder -Filter '*[*]*' -Recurse | Rename-Item -NewName { [regex]::Match($_.Name, '(?<=\[)[^]]+').Value + $_.Extension } -WhatIf
字符串如果你只想定位文件而不是文件夹,那么你可以包含-File开关:
-File
Get-ChildItem path\to\sourceFolder -Filter '*[*]*' -Recurse -File | ...
型
1条答案
按热度按时间9o685dep1#
您可以给予以下方法,首先使用
Get-ChildItem
查找名称中包含[
和]
的任何文件或文件夹,然后您可以将该对象通过管道传输到Rename-Item
,在那里您可以使用正则表达式模式提取括号中的内容作为文件或文件夹的“新名称”。-WhatIf
开关将通知您将要执行的操作,您应该在确认代码将执行您期望的操作后删除它。字符串
如果你只想定位文件而不是文件夹,那么你可以包含
-File
开关:型