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
这不起作用......有什么建议吗?
答案 0 :(得分:0)
正如原始问题的评论中所述,您的脚本存在两个语法错误。
if
命令的顺序不正确。 exists
必须走在前面。现在这些只会解决脚本崩溃问题,并且不会修复脚本逻辑中可能存在的任何错误。在不知道脚本要执行的逻辑的情况下,无法检查它。
请参阅if /?
寻求帮助。
另外,Nate Hekman在Stack Overflow上提出了一些很好的建议。
以下是从批处理脚本开始的一些很好的资源。
SS64
,Rob VanderWoulde
,DosTips
和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