どのようにバッチ正規表現を使用して、Windows PowerShellでファイル名の一部の名前を変更?
この例では、, 我々は持っています 6 日付と以下のファイル名で以下のファイル:
モードLastWriteTime長さ名前 ---- ------------- ------ ---- -A ---- 10/06/2018 12:40 0 1 = 9.8.16 銀行報告書の298.67.pdf -a ---- 10/06/2018 12:40 0 2 = 9.9.16 銀行報告書の134.74.pdf -a ---- 10/06/2018 12:41 0 3 = 9.10.16 銀行報告書の123.43.pdf -a ---- 10/06/2018 12:41 0 4 = 9.11.16 銀行報告書の134.54.pdf -a ---- 10/06/2018 12:41 0 5 = 9.12.16 銀行報告書の157.98.pdf -a ---- 10/06/2018 12:41 0 6 = 9.1.17 銀行報告書の123.45.pdf
ここに, ファイル名は、シリアルが含まれています # 初めに, =に続きます, 「銀行報告書に続きます’ 文のバランスの終わりに続きます.
これらのファイルは実際にクレジットカードの明細書ワード「銀行であります’ 言葉「クレジットカード」で交換する必要があります. ファイル名のすべての残りの部分は同じままにしてください.
これを達成するために, 私たちは、正規表現を使用してWindows PowerShellを使用することになります.
すべての銀行のステートメントを一覧表示するには, 我々は、使用します ls コマンド, その後、パイプ出力
LS | REN -newname {$_.name -replace('(.+)バンク(.+)',「$1 クレジット カード $2」)}
renameコマンドは、ファイルの名前を変更するために、パイプの後に使用されます. $_ パイプの前に出力を保持しているオブジェクトがあります, そして、私たちはのnameプロパティを使用しています $_ オブジェクト. -replace PowerShellで文字列に使用されています, これは新しい文字列と文字列を置き換えます. -replace 取る関数であります 2 パラメーター. 第一のパラメータは、置換する古い文字列で、2番目のパラメータは、新しい文字列です.
正規表現でグループをキャプチャする私たちは、文字列の部分を保つことができます. 正規表現で, 括弧に入れて何が後で使用するために捕獲されました. 例えば. (.+)Bank(.+) キャラクターの銀行の前と後に何をキャプチャ. 我々は、これらの捕獲の部品を使用することができます, 使用して $ そして数. 第一括弧はに取り込み、 $1 そして第二括弧はに取り込み、 $2 等…
第一パラメータで, 我々は交換したい古い文字列を指定します, そして同時に、私たちは維持したい文字列の部分をキャプチャ (キャプチャー). 第二パラメータで, 新しい文字列は、私たちが残しておきたいキャプチャ部品を使用しています, だけでなく、新しい文字列自体など. '$1Credit Card$2'.
結果:
モードLastWrite時間の長さ名前 ---- --------- ---- ------ ---- -A ---- 10/06/2018 12:40 0 1 = 9.8.16 クレジットカード明細書の298.67.pdf -a ---- 10/06/2018 12:40 0 2 = 9.9.16 クレジットカード明細書の134.74.pdf -a ---- 10/06/2018 12:41 0 3 = 9.10.16 クレジットカードの声明123.43.pdf -a ---- 10/06/2018 12:41 0 4 = 9.11.16 クレジットカードの声明134.54.pdf -a ---- 10/06/2018 12:41 0 5 = 9.12.16 クレジットカードの声明157.98.pdf -a ---- 10/06/2018 12:41 0 6 = 9.1.17 クレジットカード明細書の123.45.pdf
