好吧,我有点卡在我的代码的以下部分。该程序将计算文件usernames_list.txt中的行数。在每行上都有一个我要输入的文件夹的名称。我希望该程序输入列表中的每个文件夹,创建一个名为Test_1的文件,然后转到其父文件夹。应该重新挑选它,直到达到列表的末尾为止。我在做对吗?://由于某种原因,"跳过"选项不接受我的变量。
for /f %%C in ('Find /V /C "" ^< usernames_list.txt') do set lines=%%C
set times=0
set /A skip_value=%lines%-(%lines%-%times%)
:redo
FOR /F "skip=%skip_value%" %%b IN (usernames_list.txt) DO (
cd %%b
echo > test_1
cd ..
set /A times=%times%+1
if /i {%times%}=={%lines%} (goto continue)
goto redo
)
:continue
pause
当前编写,set /A skip_value=%lines%-(%lines%-%times%)
始终将评估为0,因为时间=0。
跳过值必须 be> = 1。设置跳过= 0导致语法错误。
在我看来,您的计算skip_value的逻辑是有缺陷的。但是,即使您修复了逻辑,您仍然必须担心&lt; = 0的值,我只有在值> = 1。
set "skip="
if %skip_value% geq 1 set "skip=skip=%skip_value%"
for /f "%skip%" %%b in (usernames_list.txt) ...
您可能需要/f选项的其他其他选项。那不是问题。例如:
for /f "%skip% delims=" ...