コーディングは私の専門ではありませんが、問題を見つけたので、Google検索でバッチファイルプロセスを使用して解決してください。基本的に私は、フォルダに移動する必要があり、彼らは以下のとおり非常に単純なファイル構造を持つファイルの何千ものカップルを持っている:バッチファイルを使用してファイル名に基づいてフォルダとサブフォルダを作成する
UK--London--Filename.pdf
UK--London--Filename2.pdf
UK--Manchester--Filename3.pdf
UK--Liverpool--Filename4.pdf
UK--Chester--Filename5.pdf
私は、スクリプトを希望:
1. Pick up the first "--" check if the folder exists, if not create it
2. Pick up the second "--" check if the folder exists, if not create it
3. As there might be more than two "--", ignore the rest
4. Move file into the subfolder
へ私は再利用する試みstackoverfloで別の質問からスクリプトを持っていた
C:\FILETEST\UK\London\UK--London--Filename.pdf
C:\FILETEST\UK\London\UK--London--Filename2.pdf
C:\FILETEST\UK\Manchester\UK--Manchester--Filename3.pdf
C:\FILETEST\UK\Liverpool\UK--Liverpool--Filename4.pdf
C:\FILETEST\UK\Chester\UK--Chester--Filename5.pdf
:そのためには、出力は(私は、スクリプトをテストするために使用していたフォルダがあるノート「ファイルテスト」)いくつかのようにする必要がありますw(Batch create folders based on part of file name and move files into that folder)。私はそれが私が必要とするものを正確に行えないと理解しますが、何も出力されないようです。
@ECHO OFF
SETLOCAL
SET "sourcedir=c:\FILETEST"
PUSHD %sourcedir%
FOR /f "tokens=1*delims=--" %%a IN (
'dir /b /a-d *.*.*'
) DO (
ECHO MD %%a
ECHO MOVE "%%a.%%b" --\%%a\
)
POPD
GOTO :EOF
頭痛のお詫びには、これは簡単な解決策だと思っています。
は、現在のディレクトリ内のファイルのディレクトリリスト、(/a-d
=なしdirectorynames)に一致
*--*--*
を読んで、
パノス
使用しているスクリプトでは、2つの 'ECHO'コマンドを削除して有効にする必要があると回答しています。 'ECHO MD %% a'と言うと' MD %% a'だけに変更されます。 'ECHO'の部分はコンソールへの印刷を意味します。それを削除すると、それをエコーするのではなく 'MD'コマンドが実行されます。あなたは何も出力されていないと言う、どのようにスクリプトを実行している?それをダブルクリックしますか?またはコマンドプロンプトから実行していますか?コマンドプロンプトから実行する必要があります。そうしないと、出力はただちに表示され、自動終了します。 – Matt
私はファイルマスクも変更する必要があると思います: 'dir/b/a-d *。*。*'あなたのディレクトリでそのコマンドを実行して、ファイルのリストを返すようにしてください。マスクを '*。*'にぶら下げてください。これは単に 'filename.extension'です。 – Matt
こんにちはマット、あなたのクイック返信ありがとう!Magooが問題を解決するのを助けました – Panos