ここにバッチファイルがあります:StackOverflowsの「コード」ウィンドウを押しても何も表示されないので、うまくいけばそれを解体しないでください:
@echo off
echo Moving files to respective folders.
DIR C:\ArcConverted\adam\shapefiles\ /A:-D /B > C:\ArcConverted\adam\filelist.txt
echo File start > C:\ArcConverted\adam\output.txt
FOR /f %%a IN (C:\ArcConverted\adam\filelist.txt) DO (
FOR /f "tokens=1 delims=_" %%b IN ('%%a') do echo A:%%a B: %%b
IF NOT EXIST C:\ArcConverted\adam\shapefiles\%%~na\ mkdir C:\ArcConverted\adam\shapefiles\%%~na\
echo Moving file %%a into C:\ArcConverted\adam\shapefiles\%%~na\
move C:\ArcConverted\adam\shapefiles\%%a C:\ArcConverted\adam\shapefiles\%%~na\%%b
)
pause
C:\ArcConverted\adam\shapefiles に、新しく前方変換された ArcGIS シェープファイルであるファイルがあり、それらのファイル名は次のようになりました。
- thisthing_arc.adf
- thisthing_tic.adf
- thisthing_shp.shp
- thatthing_shp.shp
... 等々。
これらの異なるオブジェクト セットが 83 個あり、それぞれに約 16 個のファイルがあります。フォルダー内のすべてのファイルを読み取り、ファイルに入れ、ファイルのリストを読み取り、必要に応じてそれぞれのフォルダーを作成するバッチ スクリプトを作成しようとしています (もちろん、バッチである必要があります)。 _ の後のすべてを出力します (_ はコンバーター プログラムから追加されます)。私のスクリプトは動作しません。2 番目の for ループは、各ファイルを開き、すべてを読み取り、数十万行を出力します。バッチを使用してファイル名を文字列で区切る方法を理解できないようです(ファイルの内容は気にしません)。
概要:
同じフォルダーにスローされた同じフォルダーにすべて属するファイル セットがあります。私はプログラム的に(バッチを介して)ファイル名(_の前に発生するすべてのもの)からセットの名前を取得し、そのフォルダーを作成してから、ファイルをそのフォルダーに移動しようとしています。そのフォルダーに属するファイルも、ループが進むにつれてそこに移動されます。
私は正しい方向に向かっていますか?ありがとう。