ディレクトリに.txtファイル(1つ以上)があり、バッチファイルでファイル名を読み取り、4番目から20文字を取得して、フォルダーに新しいディレクトリを作成します。これが私のコードです:
for /f %%i in ('dir /b *.TXT') do (
set filename1=%%i
set folder1=%filename1:~4,20%
mkdir %folder1%
)
このプログラムを初めて実行すると、3 行目 (set folder1=....) で構文が正しくないというエラーが発生し、フォルダーが作成されません。2回目の実行を試みたところ、2つのフォルダーが作成されました(「〜4」という名前のフォルダーと「20」という名前のフォルダー)。3回目の実行で、フォルダが正しく作成されました! コマンド プロンプトを閉じて再度開くと、フォルダーを作成する前に 3 回実行する必要があります。
また、「 for /r . $$i in (*.TXT) 」を使用してみましたが、うまくいきませんでした。私が理解しているように、問題は「set folder1 = ...」の行が適切なファイル名を取得しないことです。また、%%~i または %%~ni を使用してみました。ファイル名 (常に正しい文字列を取得するようです) をテキスト ファイルに出力してから、そのファイルから読み取ろうとしましたが、やはりうまくいきませんでした。 %%i がファイル名の文字列ではなく、ファイル自体を保存するためですか?
サンプルファイルの名前は「REG_18004247K_20120208_A.TXT」で、「18004247K_20120208_A」という名前のフォルダを作成したいです。
私はバッチ プログラミングにまったく慣れていません (バッチ ファイルを 2 週間ほど使用しただけです)。問題は非常に単純なものではないかと推測しています。どんな助けでも大歓迎です。
キリアコス