@echo off
set varno=1
for /r %%A in (*.txt) do call :loopdo "%%A"
goto end
:loopdo
set var=%1
set var=%var:*libraries\=%
set var%varno%=%varno%. %var:.txt"=%
set /a varno=%varno%+1
goto :eof
:end
set ifno=1
if %ifno% LSS %varno% (
echo %var%%ifno%
set /a ifno=%ifno%+1
)
pause
我怎样才能使这个回显%var1 %% var2%等? 目前它只是回应textfile1.txt“1 textfile2.txt”2,我可以看到为什么,但我不知道如何让它做到这一点。 我已经尝试了%varifno%和%% var%ifno %%但它们不起作用 - 我再次明白为什么。
答案 0 :(得分:0)
如果要评估变量名称中的变量setlocal enabledelayedexpansion
。此外,使用变量扩展从.txt
子例程中删除文件名末尾的:loopdo
。你不是很接近。
@echo off
set varno=1
for /r %%A in (*.txt) do call :loopdo "%%~pnA"
goto end
:loopdo
set "var=%~1"
set "var=%var:*libraries\=%"
set /a varno+=1
goto :eof
:end
set ifno=1
if %ifno% LSS %varno% (
setlocal enabledelayedexpansion
echo !var%ifno%!
endlocal
set /a ifno+=1
)
pause
这是未经测试的,因为您对var%varno%
和%var%%ifno%
的使用有点令人困惑。我没有看到你实际上设置了一个名为%var%%ifno%
的变量。如果不能提供完整的解决方案,我希望我所做的改变将引导您朝着正确的方向前进。