多数のファイルをコピーするバッチファイルを作成しようとしています。ファイルを取り出し、そのファイル名に基づいて特定のフォルダに移動したいと考えています。バッチファイル内の変数としてのワイルドカードの内容の参照
例えば、私はこのようなディレクトリ構造を有する:
- C:/
- FolderA
- File1.xyz
- File2.xyz
- folderBの
- File3.xyz
- FolderA
私は彼らのファイル名に応じてフォルダにすべての* .xyzというファイルをコピーして、各探しバッチファイルを持っていると思います。したがって、上記のファイルは次のディレクトリにあります。
File1.xyzがDにコピーされます:/ FolderA/File1の /File1.xyz
File2.xyzがDにコピーされます:/ FolderA/File2の /File2.xyz
File3.xyzがDにコピーされます:/ folderBの/ FILE3 /File3.xyz
これはバッチファイルのFORループを使って可能になるはずですが、テキストをワイルドカードに置き換えて変数として使用する方法がわかりません(同じ名前のフォルダを作成できます)。/FOR
%%~D Expands to a Drive letter only.
%%~P Expands to a Path only, including an ending backslash.
%%~N Expands to the Name only.
%%~X Expands to the eXtension only.
タイプ:)変数修飾子FOR
は、FORループの本体ですべてのパスの前後に引用符を入れてよさそうだが、最高。それ以外の場合は、パス内のスペースや特殊文字に問題があります。また、その名前のファイルがすでに存在する場合は、IFとCOPY文の\に宛先を追加する方が安全かもしれません。 MDは必要に応じて中間ディレクトリを作成するため、XCOPYは必要ありません。 – dbenham
これは私の質問に答えました。私は引用符で問題が発生したので、私はそれらを追加しました。皆さん、どうもありがとうございました。 –