-3
for %%d in (text.txt, test1.txt)
    if c:\desktop\deploy_pkg\bin\%%d exist (
        del C:\jboss-5.1.0.GA\bin\text.txt.bak
        del C:\jboss-5.1.0.GA\bin\text1.txt.bak
        ren C:\jboss-5.1.0.GA\bin\text.txt text.txt.bak
        ren C:\jboss-5.1.0.GA\bin\text.txt text1.txt.bak
        copy "C:\Documents and Settings\deployment\Desktop\deploy_pkg\bin\text.txt" "C:\jboss-5.1.0.GA\bin"
        copy "C:\Documents and Settings\deployment\Desktop\deploy_pkg\bin\text1.txt" "C:\jboss-5.1.0.GA\bin"
     )
 )
pause

これは機能していません...何か提案はありますか?

4

1 に答える 1

0

答え

元の質問へのコメントで述べたように、スクリプトには 2 つの構文エラーがあります。

  1. 括弧の数が一致しません。クローズごとにオープンが必要であり、その逆も同様です。
  2. ifコマンド の順序が正しくありません。existsパスの前に来なければなりません。

現在、これらはスクリプトのクラッシュの問題のみを修正し、スクリプトのロジックに存在する可能性のあるエラーは修正しません。スクリプトが実行するロジックを知らなければ、チェックすることはできません。

参照if /?してください。

また、Nate Hekman は、Stack Overflow に関する質問を作成するための適切なアドバイスを提供してくれました。

バッチの新機能

バッチ スクリプト作成を開始するための優れたリソースを次に示します。

SS64Rob VanderWouldeDosTips、およびTechnet

構文の修正

for %%D in (text.txt, test1.txt) (
    if exist "c:\desktop\deploy_pkg\bin\%%~nxD" (
        del "C:\jboss-5.1.0.GA\bin\text.txt.bak"
        del "C:\jboss-5.1.0.GA\bin\text1.txt.bak"
        ren "C:\jboss-5.1.0.GA\bin\text.txt" "text.txt.bak"
        ren "C:\jboss-5.1.0.GA\bin\text.txt" "text1.txt.bak"
        copy "C:\Documents and Settings\deployment\Desktop\deploy_pkg\bin\text.txt" "C:\jboss-5.1.0.GA\bin"
        copy "C:\Documents and Settings\deployment\Desktop\deploy_pkg\bin\text1.txt" "C:\jboss-5.1.0.GA\bin"
    )
)
pause
于 2013-03-04T21:34:09.473 に答える