拡張子を付けずにファイル名を取り除くために "Rename-Item"を使用して、ファイル名の先頭に数文字を残すことはできますか?PowerShellの名前変更 - 項目ストリップのファイル名
ex。 「0001ファイル名.txt」>「0000.txt」
拡張子を付けずにファイル名を取り除くために "Rename-Item"を使用して、ファイル名の先頭に数文字を残すことはできますか?PowerShellの名前変更 - 項目ストリップのファイル名
ex。 「0001ファイル名.txt」>「0000.txt」
あなたは、このように部分文字列との組み合わせを使用することができます:あなたは常にあなたの例では、数字と非のような同じ規則を使用している場合
$a = "0001 filename.txt"
Rename-Item -Path $a -NewName $("$($a.Substring(0,4)).txt")
あなたが使用することができ-Digits:
$Filename = Get-ChildItem 'C:\folder\0001 filename.txt'
Rename-Item $Filename -NewName ($Filename.Name -replace "\W+\w+[^.txt]")
を慣習が異なる場合は、別の正規表現を作成する必要が
私はここにも私のものを投げます。 .Split()
メソッドを使用して、スペース(かっこ内の任意の文字)の文字列を分割できます。分割して、必要な値にインデックスを付けます。
$a = "0001 filename.txt"
$a.Split()[1]
>filename.txt
ファイルの名前を変更する場合は、次のようになります。
Rename-Item $Filename -NewName $a.Split()[1]
"E:\ 0000 File1.txt"をファイルのパスに置き換えます。私はあなたがここにいくつかのファイルの形式ですので、たくさんのファイルがあると仮定します。
$File = "E:\File1.txt","E:\File2.txt","E:\File3.txt"
これは完全なコードです。ディレクトリにはファイルをいっぱい与えることもできますが、そのディレクトリにサブフォルダがある場合は、これで名前を変更することができます。最初の2行を好きなように変更すればよい。
$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
この解決方法は私のニーズに合っています。ありがとうございました。 – Rayearth