在 for 循环内进行连接

在 for 循环内进行连接

我正在尝试使用数字在另一个文件夹内创建文件夹。代码如下。现在我正在使用 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或使用pushdpopd

你可以更换所有你的if errorlevel给运营商&& ==> return 0|| ==> return non 0

您可以将goto(和:label)替换为 || (commands in block)

相关内容