どのようにバッチ正規表現を使用して、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の パワーシェル 正規表現で.

すべての銀行のステートメントを一覧表示するには, 我々は、使用します ls コマンド, その後、パイプ出力

LS | REN -newname {$_.name -replace("(.+)バンク(.+)",'$ 1Creditカードは$ 2')}

renameコマンドは、ファイルの名前を変更するために、パイプの後に使用されます. $_ パイプの前に出力を保持しているオブジェクトがあります, そして、私たちはのnameプロパティを使用しています $_ オブジェクト. -replace 内の文字列で使用されています パワーシェル, これは新しい文字列と文字列を置き換えます. -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

返信を残します