【发布时间】:2015-08-04 16:41:00
【问题描述】:
我创建了一个批处理文件,可以在资源管理器中右键单击并询问用户文件夹名称。如果该文件夹已经存在,我想一直询问用户,直到输入一个不存在的文件夹。如果文件夹已经存在,则文件在两次运行后退出,我无法弄清楚为什么会发生这种情况。在我看来,它应该不断地调用 main ,直到它得到一个不存在的文件夹名称。见下方代码
set verbose=NO
@echo off
set mydir = %cd%
cd %mydir%
cls
call:main
echo returned from main
pause
goto:eof
:main
set /p job=Enter Job Name:
echo %job%
call:check
echo returned from check
if choice==1 call:main
echo returned from main
pause
if choice==2 call:createDirectory
:check
if exist %job% (echo Folder already exists set choice=1) else (set choice=2)
echo %choice%
:createDirectory
md "%job%"
md "%job%"\1.Development
md "%job%"\1.Development\1.Budgets
md "%job%"\1.Development\2.Manufacturers
md "%job%"\"2.Plans and Specs"
md "%job%"\"2.Plans and Specs"\1.Plans
md "%job%"\"2.Plans and Specs"\2.Specs
md "%job%"\3.Pricing
md "%job%"\3.Pricing\1.Quotes
md "%job%"\3.Pricing\2.Worksheets
md "%job%"\4.Sumbittals
md "%job%"\4.Sumbittals\"1.Submittal Reviews"
md "%job%"\5.Orders
md "%job%"\5.Orders\"1.Order Summaries"
md "%job%"\5.Orders\"2.Confirmation Pages"
md "%job%"\6.Closeout
md "%job%"\6.Closeout\"1.O&M Manuals"
md "%job%"\6.Closeout\2.Warranty
【问题讨论】:
-
在
:check,在两个命令之间添加一个“&”,echo Folder already exists & set choice=1
标签: batch-file if-statement recursion directory explorer