ファイル名の特定の文字だけ取り除く
フォルダ内ファイル名の例
- 織田_202201 book1.xlsx
- 山田_202201.xlsx
- 田中_202201 book1.xlsx
↑例えばこのファイル名一覧から「book1」という文字だけ取り除く
方法
- windowsでpowershellを起動
- cd でフォルダ内に移動
- 以下を実行
これで特定の文字をファイル名一覧から取り除くことができる。
ls | Rename-Item -NewName { $_.Name -replace 'book1',''}
解説
ls:ファイルやディレクトリを表示
|:パイプラインと呼ばれる。処理を後ろに渡す
Rename-Item:指定した項目の名前を変更する
$_:PowerShell上で利用可能な特殊変数の1つ、パイプ経由で渡されたオブジェクトを表す
ファイル名一覧から半角スペースを取り除く
ls | Rename-Item -NewName { $_.Name -replace '\s',''}
先頭と最後の文字を指定して一致したら変更
ls | Rename-Item -NewName { $_.Name -replace 'b.+t','---'}
特定の文字以降を削除
山田_222.xlsx
村田_222.xlsx
↓
山田.xlsx
村田.xlsx
ls | Rename-Item -NewName { $_.Name -replace '_.+(.xlsx)','.xlsx'}
yyyy年mm月⇒yyyymmに変更
フォルダ名
・2021年01月
・2021年02月
↓
・202101
・202102
ls | Rename-Item -NewName {$_.Name -replace '([0-9][0-9][0-9][0-9])年([0-9][0-9])月','$1$2'}
エラー
フォルダ名「新しいフォルダー (1)」でcdで移動しようとするとエラーが出た。
エラー内容
Set-Location : 引数 '1' を受け入れる位置指定パラメーターが見つかりません。
+ CategoryInfo : InvalidArgument: (:) [Set-Location]、ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
フォルダ名を変更したらエラーは解消された。
コメント