2016-12-14 6 views
0

フォルダーを削除して作成する構文は何ですか?存在する場合はrmdirフォルダー&& mkdirフォルダーはその後にコマンドを実行しません&&

if exist folder rmdir folder && mkdir folder 

動作しません。どちらも置き換えられません。&&&,||,| ...

正しい構文はどれですか?

OS:Windowsの2012 シェル:私は限り2つの条件が満たされたとしてPSベースの答えを受け入れることができるのcmd.exe *

PS。 1)それはcmd.exeから始める必要があります。2)遭遇した(権限の不足のような)場合は、cmdの標準出力に意味のあるエラーを出さなければなりません。

+1

ブラケット。あなたのコマンドに何があるのか​​をCMDに伝えます。 '(存在する場合はフォルダrmdirフォルダ)&(mkdirフォルダ)'と思うのですか? –

+2

'rmdirフォルダーとmkdirフォルダー'あなたはテストする必要はありません(余分なディスクアクセスのためにバッテリーを使い、遅いです)。フォルダーが空であるか、rmdirの構文が間違っていると仮定します。 'rmdir /空ではなく 'rd/s/qフォルダ 'を使用してください –

+0

どちらのソリューションも魅力的に機能しました!実際にフォルダがシンボリックリンクであっても)私はそれを受け入れることができるように答えを入れてください。また、なぜ単体の '&'と問題のコードから二重でないのかを説明してください(完全性のために) –

答えて

1

/Sスイッチを使用しないでrmdirを使用しているので、対象のフォルダが空であると仮定します。なぜそれを削除して再作成するのですか?この変形はもちろん、すべてのフォルダの属性と所有者を維持

mkdir "folder" 2> nul 

:ようにあなたは、単に、それを作成し、それがすでに存在する場合のエラーメッセージを抑制することができます。


フォルダーを削除し、再作成を主張する場合は、この使用:

rmdir "folder" 2> nul & mkdir "folder" 

をこのバリアントは、すべてのフォルダの属性と所有者を破壊します。


フォルダがが空であることが保証されていない場合、あなたはrmdirため/Sスイッチを必要とします。 は、実際にフォルダを削除するように促されるのを避けるのに便利です。

rmdir /S /Q "folder" & mkdir "folder" 
+0

問題のWellフォルダは実際には "mklink/D"として作成されたシンボリックリンクです。したがって、rmdirを使っていつでも削除することができます。しかし、rmdirは削除するものがなければ文句を言うでしょう。 –

+0

これは、 '2> nul'部分が〜の場合に' rmdir'のエラーを抑止するためのものです... – aschipfl

関連する問題