Windows 10 - 設定された文字間隔内でファイル名の特定の部分を検索する

Windows 10 - 設定された文字間隔内でファイル名の特定の部分を検索する

こんにちは/こんばんは、

誰かが助けてくれるかもしれないし、もしかしたらこれが他の誰かの役に立つかもしれない。以下の例を見ると:

01022015- ブラブラブラ 04022018 - ブラブラブラ 02012016 - ブラブラブラ

私がやりたいのは、ファイル名の 3 番目と 4 番目の文字にローカライズされている 02 を検索することです。2 番目の文字の後に「02」を検索するようなものです。

そうすれば、すべての 2 月のファイルを個別に整理し、それらを適切に一括して名前変更できるようになります。

これは実行可能でしょうか? 以下は、さらなる開発の基礎として役立つ可能性がある検索クエリの例です。

もうありがとう〜」(4)

答え1

ファイル名の 3 番目と 4 番目の文字に 02 がローカライズされている場合は、その 02 を検索します。

?「1 文字を強く」を意味するパターン シンボルを使用します。

DIR ??02*.*

答え2

今回はラッキーだと思います。この場合の正規表現は非常にシンプルで、マイクロソフト ウィンドウズ 10コマンドライン プリプロセッサ。

正規表現は です??02*

したがって、 などのオペレーティング システム コマンドを大胆に発行することができますRENAME ??02* <New Name>

RENAME構文

答え3

これを再帰的に試してください:
for /f tokens^=* %F in ('where /r . "??02*.*"')do rename "%~F" "Some_New_Name%~xF"
  • 出力:
rename "G:\SUPER_USER\Q59446122\310220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\110220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\100220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\170220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\030220218.txt" "Some_New_Name.txt"

現在のフォルダーに対してこれを試してください:

for /f tokens^=* %F in ('where "??02*.*"')do rename "%~F" 
  • 出力:
rename G:\SUPER_USER\Q59446122\310220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\110220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\100220218.txt Some_New_Name.txt

関連情報