PowerShellによるファイル名変更のバッチ処理例
2022-02-04 22:39:27
最後に、CMDと比較してPowerShellの便利なところを発見しました。
アメリカの番組をいくつかダウンロードしたのですが(すみません、見終わったら削除します)、たいてい長いファイル名で、必要ない情報がたくさん含まれています、例えば
コピーコード
コードは以下の通りです。
Don't Lie to Me.Lie.To.Me.S04E11.Chi_Eng.HDTVrip.720×396-YYeTs人人影视V2.rmvb
Don't Lie to Me.S04E12.Chi_Eng.HDTVrip.720×396-YYeTs人人影视.rmvb
Don't Lie to Me.S04E13.Chi_Eng.HDTVrip.720×396-YYeTs人人影视V2.rmvb
Don't Lie to Me.S04E14.Chi_Eng.HDTVrip.720×396-YYeTs人人影视.rmvb
私が欲しいのは
コピーコード
コードは以下の通りです。
Lie.To.Me.S04E11.rmvb
Lie.To.Me.S04E12.rmvb
Lie.To.Me.S04E13.rmvb
Lie.To.Me.S04E14.rmvb
元のファイル名の一部を固定する必要があったので、PowerShellを思いつき、まずはbyでテストしてみました。
コピーコード
コードは以下の通りです。
foreach ($i in (dir else*){ Write-Host $i.Name.SubString(6, 17); }
このフォルダーには "don't"で始まる他のファイルはないので、(dir don't*) を使って名前を変更する必要があるすべてのファイルをリストアップすることができます。次に、それぞれのファイルについて、ファイル名の6文字目から23文字目までを取り出します: $i.Name.SubString(6, 17)
このように表示されます。
コピーコード
コードは以下の通りです。
Lie.To.Me.S04E11.
Lie.To.Me.S04E12.
Lie.To.Me.S04E13.
Lie.To.Me.S04E14.
そして、最後の拡張子rmvbを追加するだけで、最終的なコマンドは次のようになります。
コピーコード
コードは以下の通りです。
foreach ($i in (dir else*){ $i.MoveTo($i.Name.SubString(6, 17) + "rmvb"); }
ヒント:PowerShellのカレントパスはCDコマンドに従わない。MoveToを使用する前に、[Environment]::CurrentDirectory = $pwdで現在のパスを調整する必要があります。
関連
-
PowershellによるWindowsログのクエリ方法
-
特定のWebページに関する情報を取得するPowershellコード
-
ADユーザーのパスワード属性を一括で変更するPowerShellコード
-
PowerShell文字列オブジェクトのメソッド概要
-
サーバーの接続状態を監視するためのPowershellの実装
-
PowerShellファイル同期スクリプトを共有
-
PowerShell正規表現(Regex)の右から左へのマッチング方式のコード例
-
PowerShell DSC コンポーネント xExchange をリリースしました。
-
PowerShellでNICの状態と対応する電源設定を確認する
-
PowerShell ローカルアカウントスクリプト共有の追加
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン