- ベストアンサー
バッチファイルで指定拡張子以外のファイルをコピーする方法
OK Waveページ内を検索してみましたが、同じような質問をされている方がいないようでしたので、新規で質問させていただこうと思います。 ある特定のフォルダに入っているファイルを、指定した拡張子以外のファイルのみコピーしるバッチファイルを作成したいのですが、よい方法がみつかりません。 コマンドの操作方法をいろいろ調べてはみたのですが、 指定拡張子以外をコピーするようなコマンドがないようです。 例えば、c:\TEST_Aに、a.xls, b.doc, c.txtとファイルがあって、拡張子が"txt"以外のファイルをすべてc:\TEST_Bフォルダにコピーを取りたい場合、どのようにバッチファイルを組めばよいでしょうか。 以上、宜しく御願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
SET SRC_DIR=C:\TEST_A SET DIST_DIR=C:\TEST_B SET EXCLUDE_FILE_EXT=.txt FOR %%F IN (%SRC_DIR%\*) DO ( IF /I NOT "%%~xF"=="%EXCLUDE_FILE_EXT%" copy "%%F" "%DIST_DIR%" ) みたいな感じでしょうか・・・ ※ファイルの拡張子の取得方法は for /? で見つけられます。
その他の回答 (3)
- sakusaker7
- ベストアンサー率62% (800/1280)
すでに自分で解決されたかもしれませんが、 dir /b c:\TEST_A\*.txt > exclude-list xcopy /exclude:exclude-list TEST_A TEST_B でどうでしょう? 一時ファイルが必要なのがちょっといやらしいですが。
お礼
一時ファイルは残りましたが、動作いたしました。 これも一つの手ですね。 参考にさせていただきます。 ありがとうございました!!
- Tacosan
- ベストアンサー率23% (3656/15482)
.txt という内容のファイル c:\TEST_A\exclude.txt があれば, xcopy /exclude:c:\TEST_A\exclude.txt c:\TEST_A c:\TEST_B でいけるかもしれない.
補足
回答いただきありがとうございます。 早速やってみましたが、拡張子が"txt" のファイルもコピーされてしましました。 コマンドの組み方として参考になりました。
- ryuujiok2205
- ベストアンサー率21% (233/1098)
フォルダ丸ごと適当なフォルダ名でコピー、del *.txt、のこり丸ごと目的のフォルダへコピーではダメ?
補足
ご回答ありがとうございます。 少し説明不足でした。 今回の例では、c:\TESTA_ と、c:\TEST_Bは、固定して利用するフォルダを想定してます。 回答いただいた内容も一つ手ですね。 なかなかスマートにコマンドは作れないようですね・・・。
お礼
ご回答ありがとうございます。 先ほど、試してみたところ、動作いたしました。 ソースを書き換えれば、他にもいろいろと応用できそうです。 ありがとうございました!!