不知道如何解释这个,所以这里是代码
@echo off
set test=0
for /f %%a in (textfile.txt) do (
rem loops five times(5 lines in textfile.txt)
set /a test=test+1
rem Adds 1 to Test
echo %%a
rem Echo's correct line in file
echo %test%
rem Echo's whatever X was before the loop
)
echo %test%
rem Displays the correct value of X
pause
这只是我发现问题的一个例子,txtfile.txt 有 5 行,所以 for 循环执行 5 次,每次, test 得到 +1,并且 /a 显示 X 的正确值,但是for 循环上的最后一个回显显示 0,这是循环之前设置的测试。
test 的值在循环完成之前不会改变......有没有办法解决这个问题?
这是我想要完成的,因为可能有一个更简单的方法:我想运行一个 for 循环,在一系列子文件夹中 findstr 的所有 rtf,并将它们全部复制到一个新名称的 all 目录中,1.rtf ,2.rtf,3.rtf 等。我需要在传输时重命名它们的原因是它们都具有相同的名称。