使用bat命令创建文件夹
问题描述:
我有一个bat文件来创建文件夹。使用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)但第二个函数不起作用。如果我删除第一个功能,那么第二个功能正在工作
请你有人解释这个背后的原因吗?
答
试试这个:
: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的答案。
答
一些额外的信息:在Windows的NT行你需要用反斜杠
结束文件夹名,你可能就意味着%〜1而不是%1%文件夹中一个可靠的测试
IF EXIST "%~1\JBoss\" do task
在你的情况下,你可以随时使用它,如果文件夹已经存在,它将不会做任何事情:2>nul
当文件夹存在时消除无害的错误消息。
mkdir "%DESTINATION%\IX3\COSMIC\JBoss" 2>nul
mkdir "%DESTINATION%\IX3\COSMIC\DB" 2>nul
您发布的代码的意图不明确。请更好地解释一下包含文件夹结构的例子。另外,请查看下面的一些答案,他们给出了一些提示:1.小心'%1','%1%','%〜1'和'“%〜1”'之间的差异。 2.注意'goto end'和'goto:eof'之间的区别,以及'goto'和'call'之间的区别。 – 2013-05-02 14:17:04