アプリ版:「スタンプのみでお礼する」機能のリリースについて

OK Waveページ内を検索してみましたが、同じような質問をされている方がいないようでしたので、新規で質問させていただこうと思います。

ある特定のフォルダに入っているファイルを、指定した拡張子以外のファイルのみコピーしるバッチファイルを作成したいのですが、よい方法がみつかりません。
コマンドの操作方法をいろいろ調べてはみたのですが、
指定拡張子以外をコピーするようなコマンドがないようです。

例えば、c:\TEST_Aに、a.xls, b.doc, c.txtとファイルがあって、拡張子が"txt"以外のファイルをすべてc:\TEST_Bフォルダにコピーを取りたい場合、どのようにバッチファイルを組めばよいでしょうか。

以上、宜しく御願い致します。

A 回答 (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 /? で見つけられます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
先ほど、試してみたところ、動作いたしました。

ソースを書き換えれば、他にもいろいろと応用できそうです。
ありがとうございました!!

お礼日時:2007/09/13 08:33

すでに自分で解決されたかもしれませんが、



dir /b c:\TEST_A\*.txt > exclude-list
xcopy /exclude:exclude-list TEST_A TEST_B
でどうでしょう?

一時ファイルが必要なのがちょっといやらしいですが。
    • good
    • 0
この回答へのお礼

一時ファイルは残りましたが、動作いたしました。
これも一つの手ですね。
参考にさせていただきます。
ありがとうございました!!

お礼日時:2007/09/13 08:34

.txt


という内容のファイル c:\TEST_A\exclude.txt があれば,
xcopy /exclude:c:\TEST_A\exclude.txt c:\TEST_A c:\TEST_B
でいけるかもしれない.

この回答への補足

回答いただきありがとうございます。
早速やってみましたが、拡張子が"txt" のファイルもコピーされてしましました。
コマンドの組み方として参考になりました。

補足日時:2007/09/10 19:34
    • good
    • 0

フォルダ丸ごと適当なフォルダ名でコピー、del *.txt、のこり丸ごと目的のフォルダへコピーではダメ?

この回答への補足

ご回答ありがとうございます。
少し説明不足でした。
今回の例では、c:\TESTA_ と、c:\TEST_Bは、固定して利用するフォルダを想定してます。

回答いただいた内容も一つ手ですね。
なかなかスマートにコマンドは作れないようですね・・・。

補足日時:2007/09/10 19:36
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!