PowerShell重命名项目条带文件名

时间:2016-03-22 13:16:40

标签: powershell rename-item-cmdlet

Can" Rename-Item"用于剥离没有扩展名的文件名只是为了在文件名的开头留下几个字符?

代表。 " 0001 filename.txt" > " 0000.txt"

4 个答案:

答案 0 :(得分:1)

你可以像这样使用子串的组合:

$a = "0001 filename.txt"
Rename-Item -Path $a -NewName $("$($a.Substring(0,4)).txt") 

答案 1 :(得分:0)

如果您总是使用与示例中相同的约定,数字和非数字

您可以使用:

$Filename = Get-ChildItem 'C:\folder\0001 filename.txt'
Rename-Item $Filename -NewName ($Filename.Name -replace "\W+\w+[^.txt]")

如果约定不同,则需要创建不同的正则表达式

答案 2 :(得分:0)

我也会把我扔进这里。您可以使用.Split()方法来断开空格(或括号内的任何字符)上的字符串。我们拆分然后索引到我们想要的值。

$a = "0001 filename.txt"
$a.Split()[1]
>filename.txt

如果我们想要重命名您的文件,请看起来像这样。

Rename-Item $Filename -NewName $a.Split()[1]

答案 3 :(得分:0)

将“E:\ 0000 File1.txt”替换为文件的路径。我假设你有很多文件要做,这里是几个文件的格式。

$File = "E:\File1.txt","E:\File2.txt","E:\File3.txt"

这是完整的代码。您还可以为目录提供完整的文件,但如果该目录包含子文件夹,则可以通过此目录重命名。您只需要根据自己的喜好更改前两行。

$File = "E:\0000 File1.txt","E:\0000 File2.txt"
$CharsToKeep = 7

Get-ChildItem $File |
ForEach-Object{
    $Orig = $_.fullname
    $NewName = ($_.BaseName).Substring(0,$CharsToKeep) + $_.Extension
    Rename-Item -path $Orig -NewName $NewName
} # end Foreach. Also end Get-ChildItem