命令:用于 |它不会接受我在 skip=%var% 选项中的变量



好吧,我有点卡在我的代码的以下部分。该程序将计算文件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=" ...

最新更新