PowerShell:如何为目录中的所有文件附加前缀?

PowerShell:如何为目录中的所有文件附加前缀?

目前我正在使用如下命令:

dir | rename-item -NewName {$_.name -replace "-","_"}

但现在我需要为目录中的所有文件的文件名添加前缀。
我无法预测每个文件名有多长(它会变化),所以我不能只使用一堆.通配符。

我需要它在每个文件名的开头附加一个固定短语,不管该文件名是什么。

答案1

正则表达式的替代方法是使用简单的字符串操作来创建新的文件名。

$items=Get-ChildItem;
$items | Rename-Item -NewName { "Prefix_" + $_.Name };

答案2

你离得很近。

  • -replace使用 RegEX,在正则表达式中,你首先用^
  • 对于后缀,你可以类似地将行尾的锚点替换为$
  • 为了避免重命名文件的任何可能的重复,请将管道的第一个元素括在括号中。

(Get-ChildItem -File) | Rename-Item -NewName {$_.Name -replace "^","Prefix_"}

答案3

删除文件夹中所有内容的前缀:

Get-ChildItem 'Folderpath\KB*' | Rename-Item -NewName { $_.Name -replace 'KB*','' }

为文件夹中的所有内容添加前缀:

foreach($item in 'Folderpath')
{
Get-ChildItem 'C:\Users\ilike\OneDrive\Desktop\All in one script\Single Patch here' | Rename-Item -NewName { "KB" + $_.Name }
}

花了一段时间,希望这可以帮助有需要的人

答案4

获取子项 *.FileExtension_ | foreach { 重命名项 $_ $.名称.替换($.名称,"前缀_" + $_.名称) }

将 FileExtension_ 替换为与要添加前缀的文件类型对应的扩展名。或者只需删除 .FileExtension_ 以及“.”即可为工作目录中的所有文件添加前缀。将 Prefix_ 替换为所需的前缀。

相关内容