替换部分文件名Powershell

MRA*_*n23 10 powershell

我有每天早上生成的文件:

  • Default_20140227_05.00.29.csv
  • Default_20140226_05.00.29.csv

我想重命名文件:

  • VOD_20140227_05.00.29.csv
  • VOD_20140226_05.00.29.csv

我想主要是更换DefaultVOD.

我正在使用Powershell 1.0.任何帮助将不胜感激.

Adi*_*tan 10

我没有测试PowerShell 1.0,但假设您在文件所在的文件夹中运行它,您可以尝试:

Get-ChildItem Default_*.csv  |Rename-Item -NewName {$_.name -replace '^Default','VOD'}
Run Code Online (Sandbox Code Playgroud)


Col*_*350 7

gci | ?{$_.Name -like "Default*"} | % {$newname = ([String]$_).Replace("Default","VOD"); Rename-item $_ $newname}

更解释性的版本:

$DefaultFiles =  Get-ChildItem | Where-Object {$_.Name -like "Default*"}
ForEach($File in $DefaultFiles) 
{
    $newname = ([String]$File).Replace("Default","VOD")
    Rename-item -Path $File $newname
}
Run Code Online (Sandbox Code Playgroud)

  • 愿意添加任何解释吗?我不认为海报有能力解析/维护它。我插入“它有效,但我不知道如何”并不比不知道好多少。 (3认同)

小智 5

简化:

ls *.csv | Rename-Item -NewName {$_.name -replace "Default","VOD"}
Run Code Online (Sandbox Code Playgroud)

  • 奇迹般有效。但是请注意,`-replace` 将搜索参数值视为正则表达式,因此您必须对某些值使用特殊的正则表达式字符,例如 `\s` 来查找和替换空格字符 (5认同)