我正在尝试使用数字在另一个文件夹内创建文件夹。代码如下。现在我正在使用 echo 检查。但它打印的是空字符串。这里面有什么错误?以及如何实现这一点?
set folder=d:/delete_It
setlocal ENABLEDELAYEDEXPANSION
FOR /L %%r IN (72,1,98) DO (
REM mkdir %%r
if not errorlevel 0 goto somethingbad
set final_Dir=%folder%/%%r
if not errorlevel 0 goto somethingbad
echo final_Dir
if not errorlevel 0 goto somethingbad
)
endlocal
somethingbad:
echo "Unexpected error"
注意:我使用的是 Windows 10 专业版,64 位
答案1
@echo off
pushd "D:\delete_it"
setlocal EnableDelayedExpansion
for /l %%r in (72 1 98)do mkdir %%r && (
set "_final_dir=!cd!\%%~r"
<con: echo\!_final_dir!
) || (
echo\Unexpected error^!! & popd
endlocal & goto :eof
)
popd & endlocal | <con: echo\Good bye^^!!
您不需要为文件夹设置变量,只需转到D:\Delete_it
或使用pushd
和popd
你可以更换所有你的if errorlevel
给运营商&& ==> return 0
和|| ==> return non 0
您可以将goto
(和:label
)替换为 || (commands in block)