5

私は構造を持つバッチファイルを持っています:

if exist F:\ copy /y Application.exe F:\

コンパイルの最後に、プラグインされている場合、実行可能ファイルを USB キーにコピーします。 、SD カードが接続されていない場合、上記のバッチ行を実行すると、「Windows - ディスクがありません」というメッセージが表示されます。

カードが差し込まれている場合、メッセージは表示されません (ファイルがコピーされます)。カード リーダーが差し込まれていない場合、メッセージは表示されず、ファイルはコピーされません (明らかに)。ただし、どちらの場合も、バッチ ファイルの実行は停止しません。カードリーダーが接続されているが、ドライブにカードがない場合のみです。

これらの USB ドライブに「ディスク」がないことをバッチ ファイルから静かに確認できますか?

4

4 に答える 4

7

必要に応じてまたはに置き換えIF EXISTDIR使用します。&&||

例えば、

  • 交換するIF EXIST...

    DIR F:\ && copy /y Application.exe F:\
    
  • 交換するIF NOT EXIST

    DIR F:\ || copy /y Application.exe F:\
    

DIRのSTDOUTとSTDERRを抑制してIF EXISTを正確に模倣したい場合...

  • 交換するIF EXIST...

    DIR F:\ 1>NUL 2>&1 && copy /y Application.exe F:\
    
  • 交換するIF NOT EXIST

    DIR F:\ 1>NUL 2>&1 || copy /y Application.exe F:\
    
于 2011-10-03T15:51:48.937 に答える
0

if existNULの後に追加すると機能しF:\ます。このような:

if exist F:\NUL copy /y Application.exe F:\
于 2014-06-07T18:13:54.643 に答える
0

DIRドライブが空でない場合のみ OK です。

ドライブにファイルが存在しない場合、ドライブが正しく接続されていても機能しません。

CD代わりに使用してください:

CD F:\ && copy /y Application.exe F:\
于 2013-04-19T12:42:33.073 に答える
0

I think that there used to be that you could run command.com with a /F parameter to make it always automatically fail those error messages so that it didn't break on them. Not sure about it though and not at all sure if that still works on modern Windows.

于 2010-12-14T09:11:06.593 に答える