CMD シェルでIF
最も簡単かつ/または最も読みやすい方法は何ですか? AND
擬似コード:
IF EXIST file1 AND file2:
then do stuff
ELSE:
do something else
この Q は SO のどこかにある必要がありますが、私の検索機能はこの Q では機能しません。ごめん
CMD シェルでIF
最も簡単かつ/または最も読みやすい方法は何ですか? AND
擬似コード:
IF EXIST file1 AND file2:
then do stuff
ELSE:
do something else
この Q は SO のどこかにある必要がありますが、私の検索機能はこの Q では機能しません。ごめん
DOS/Windows バッチ ファイルについて話していると仮定すると、次のようなものが必要だと思います。
SET do_stuff=false
IF EXIST file1 IF EXIST file2 SET do_stuff=true
IF "%do_stuff%"=="true" (
REM do stuff
) ELSE (
REM do something else
)
醜さの原因は、DOS バッチ ファイルif
ステートメントにand and or演算子がないことです。そのため、ネストされたステートメントを記述するか( then句とelseif
句でコードが重複する可能性があります)、式の結果を変数にキャプチャする必要があります。次に、その値に対してステートメントを実行します(さらに多くの行)。コードの重複を避けるために、私は 2 番目のアプローチを好みます。おそらく、これはすべてセキュリティ機能です。:)if
こことここでいくつかの良い例を見つけました (SO, even)。help if
ただし、シェル (またはif /?
IIRC)に組み込まれているヘルプ システムを使用することもできます。
IF EXIST A (
IF EXIST B (
ECHO A and B exist
)
)
@Randall Cookによるかなり良い提案に代わるものは、次のようになります。
IF EXIST file1 IF EXIST file2 (
do stuff
GOTO cont
)
do something else
:cont
get on with other stuff