我有一个bat文件来创建文件夹。
:X3Main
IF EXIST "%1%\JBoss" goto Test
IF EXIST "%1%\DB" goto DB
goto end
:Test
mkdir "%DESTINATION%\IX3\COSMIC\JBoss"
goto end
:DB
mkdir "%DESTINATION%\IX3\COSMIC\DB"
goto end
此处第一个文件夹已成功创建(IF EXIST“%1%\ JBoss”goto Test)但第二个功能无效。如果我删除第一个函数,则第二个函数正在运行。
请你解释一下背后的理由吗?
答案 0 :(得分:0)
试试这个:
:X3Main
IF EXIST "%1%\JBoss\" call:Test
IF EXIST "%1%\DB\" call:DB
goto :eof &rem or goto:end or where you want
:Test
mkdir "%DESTINATION%\IX3\COSMIC\JBoss"
goto :eof
:DB
mkdir "%DESTINATION%\IX3\COSMIC\DB"
goto :eof
使用call
从函数返回,使用goto:eof
结束函数。
编辑了关于foxidrive的答案。
答案 1 :(得分:0)
一些额外的信息:在Windows的NT行中,对文件夹进行可靠的测试,你需要用反斜杠结束foldername
你可能意味着%〜1而不是%1%
IF EXIST "%~1\JBoss\" do task
在您的情况下,您可以随时使用此文件,如果文件夹已存在则不会执行任何操作:2>nul
会在文件夹存在时消除无害的错误消息。
mkdir "%DESTINATION%\IX3\COSMIC\JBoss" 2>nul
mkdir "%DESTINATION%\IX3\COSMIC\DB" 2>nul