###前提・実現したいこと
以下にある、LINUXのものと同じことを実装したいです。
test1.txtとtest2.txtが無ければ、"exit 0"で終了し、
どちらか片方でもあれば、test1.txt、test2.txtを削除し、
"exit 1"を返すといったバッチを作成したいです。
LINUXでは、以下のようなスクリプトで実装しています。
bash
1if ([ ! -e /tmp/test1.txt ] && [ ! -e /tmp/test2.txt ] ); then 2 exit 0 3else 4 if [ -e /tmp/test1.txt ]; then 5 rm -f /tmp/test1.txt 6 fi 7 if [ -e /tmp/test2.txt ]; then 8 rm -f /tmp/test2.txt 9 fi 10 exit 1 11fi
###発生している問題・エラーメッセージ
LINUXのものと同じことを実装したいのですが、
調べたところ、Windowsのバッチでは、IF文でAND ORが使えないらしかったので、
以下のようなバッチで実装できないかを検証しています。
IF文が正しく判断されているかを確認する為、
echoでファイルを作成させるようにしたのですが、
バッチファイルを実行しても、ファイルが作成されません。
コマンドプロンプトにドロップして実行しても、ファイルが作成されませんでした。
"NOT Exist"を"Exist"にしても同じでした。
###ソースコード
dos
1SET FILE_FLAG_A=0 2IF NOT Exist C:\test1.txt ( 3SET FILE_FLAG_A=1 4) 5 6IF %FILE_FLAG_A% == "1" ( 7echo "A" > C:\A.txt 8) 9 10SET FILE_FLAG_B=0 11IF NOT Exist C:\test2.txt ( 12SET FILE_FLAG_B=1 13) 14 15IF %FILE_FLAG_B% == "1" ( 16echo "B" > C:\B.txt 17)
###補足情報(言語/FW/ツール等のバージョンなど)
WindowsServer2008R2
実装方法が不明な部分がありますが、以下のような処理で実現できるのではないかと考えています。
dos
1set フラグA=0※ファイルA存在フラグ 2set フラグB=0※ファイルB存在フラグ 3set フラグC=0※ファイルAとBが存在することを表すフラグ(数値) 4 5if [ファイルAがある]( 6フラグA=1 7フラグC+=1※計算方法が現地点不明 8) 9 10if [ファイルBがある]( 11フラグB=1 12フラグC+=1※計算方法が現地点不明 13) 14 15if [ファイルC == 2]( 16del ファイルA 17del ファイルB 18 19exit 1 20) 21 22if [ファイルA == 1]( 23del ファイルA 24exit 1 25) 26 27if [ファイルB == 1]( 28del ファイルB 29exit 1 30) 31 32exit 0 33

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/13 13:48