-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

回答

如原始问题的评论中所述,您的脚本存在两个语法错误。

  1. 括号数不匹配。每次关闭都需要打开,反之亦然。
  2. 命令的顺序if不正确。 exists必须在路径之前。

现在这些只会修复脚本崩溃问题,不会修复脚本逻辑中可能存在的任何错误。在不知道脚本要执行的逻辑的情况下,无法检查它。

if /?寻求帮助。

此外,Nate Hekman 为在 Stack Overflow 上写问题提供了一些很好的建议。

批处理新手

这里有一些从批处理脚本开始的很好的资源。

SS64, Rob VanderWoulde,DosTipsTechnet

语法修复

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 回答