「IMG0001」、「IMG0002」などの名前のカメラからの画像のセットがあり、奇数番号の画像をすべて別のフォルダーに移動したいと思いました。
バッチスクリプトを使用してこれを実現するにはどうすればよいですか?
共通のプレフィックスまたは同じ数字のパディングを共有しないファイル名を受け入れるスクリプトを作成することは可能ですか?
「IMG0001」、「IMG0002」などの名前のカメラからの画像のセットがあり、奇数番号の画像をすべて別のフォルダーに移動したいと思いました。
バッチスクリプトを使用してこれを実現するにはどうすればよいですか?
共通のプレフィックスまたは同じ数字のパディングを共有しないファイル名を受け入れるスクリプトを作成することは可能ですか?
ファイル名が8.3規則(ベース名<= 8文字、スペースなし)に収まる場合、コマンドラインから次のように機能します(バッチファイルで使用する場合はパーセントを2倍にします)。
for %F in (*1.jpg *3.jpg *5.jpg *7.jpg *9.jpg) do move "%%F" "newLocation\"
ただし、名前が長い場合やスペースが含まれている場合、長い名前には奇数または偶数で終わる短い名前が含まれる可能性があるため、上記は機能しない可能性があります。DIRとFORはどちらも、パターンマッチングを実行するときに、長い名前と短い名前の両方を調べます。
そのため、一時ファイルを使用しないように適応できる、キリロイドのソリューションの改良版が残ります。この適応は、名前のスペース、大文字と小文字の混合、ファイル名の.jpg、拡張子などでも機能します。
for /f "eol=: delims=" %F in ('dir /b /a-d *.jpg^|findstr /irc:"[13579]\.jpg$"') do move "%F" "newLocation"
例+findstr/ regex:
DIR /B -D *.jpg | findstr "[02468][.]jpg" > %TEMP%\DIR.LST
FOR /F %%f IN (%TEMP%\DIR.LST) DO (
move %%f new_dir
)
DEL DIR.LST
誰かが教えてくれたら、tmpファイルなしでそれを行う方法を教えていただければ幸いです。Linuxでは、私は慣れてxargs
バックティックになります。
タイトル文字列の整数部分のみを取得する場合は、正規表現を使用して数値のみを保持し、モジュラス2がtrueまたはfalseを返すかどうかを確認してから、移動できます。
これが非常に非技術的な方法です:
サムネイルを使用して、名前で並べ替えたウィンドウにファイルを配置します。
サムネイルが2列に収まるようにウィンドウのサイズを変更します。
マウスを使用してウィンドウを選択します-1つの列のみを選択します。
私はこれをWindows7で正確に実行しました。
誰かが古いWindowsバージョンのためにこれを見せて作ったYouTubeビデオがあります: http ://www.youtube.com/watch?v = 3Kr2sTzpFY4