質問: ファイル名に基づいてフォルダを作成する.batが必要です ファイル名に基づいてフォルダを作成し、その中にファイルを配置する.batが必要です。私はこのようにフォーマットされた名前を持っています:string1 - string2 - string3 - string2 - string3_number.jpg 必要に応じて最初の3つの文字列を受け取るコマンドを見つけましたが、それ以上機能させることはできません。このコマンドをbatに入れようとすると、「-」というフォルダーのみが作成されます。for /f "tokens=1,2,3 delims=-" %%a in ('dir /b /a-d') do (set string1=%%a&set string2=%%b&set string3=%%c md "%string1%-%string2%-%string3%") .batでこの前に@echoをオフにしてsetlocalをオフにすると、誰かがそれを正しくするのを手伝ってくれるので、名前に基づいてフォルダーを作成し、ファイルを配置します。これらの投稿を読みましたが、フォルダーを作成することさえできません。 ファイル名に基づいてフォルダをバッチ作成し、複数の関連ファイルを作成したフォルダに移動します ファイル名に基づいてフォルダを作成し、ファイルを自動移動するためのスクリプトが必要です ファイル名の一部に基づいてフォルダをバッチ作成し、そのフォルダにファイルを移動します
回答: andを設定するときに delayedexpansion が必要なため、(コードブロック)でvarを使用しても機能しません。ただし、まったく必要のない変数は変更しないためです。@echo off & setlocal enabledelayedexpansion for /f "tokens=1,2,3 delims=-" %%a in ('dir /b /a-d') do ( set "folder=%%a-%%b-%%c" rem to remove the trailing space from the folder set "folder=!folder:~0,-1!" if not exist "!folder!\" md "!folder!" ) 間違ったアプローチであるファイルも移動するには、最初にファイルを反復し、次に上記のようにファイルを分割する必要があります。