使用bat命令创建文件夹

使用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)但第二个函数不起作用。如果我删除第一个功能,那么第二个功能正在工作

请你有人解释这个背后的原因吗?

+0

您发布的代码的意图不明确。请更好地解释一下包含文件夹结构的例子。另外,请查看下面的一些答案,他们给出了一些提示:1.小心'%1','%1%','%〜1'和'“%〜1”'之间的差异。 2.注意'goto end'和'goto:eof'之间的区别,以及'goto'和'call'之间的区别。 – 2013-05-02 14:17:04

试试这个:

: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