Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 每次循环到不同文件WIN批的结果_Windows_Batch File - Fatal编程技术网

Windows 每次循环到不同文件WIN批的结果

Windows 每次循环到不同文件WIN批的结果,windows,batch-file,Windows,Batch File,我想解决一个简单的问题-当循环重复时保存到不同的文件。我知道我得到了结果,因为当我做>>file.txt时 我正在将所有的Results放在一个文件中。每次将结果保存到不同的文件(并通过变量中的文本命名此文件)会很好。但是有点错误。它保存了上次循环迭代的结果 @echo off setlocal ENABLEDELAYEDEXPANSION set vidx=0 for /F "tokens=1* delims=;" %%A in (list2.csv) do (

我想解决一个简单的问题-当循环重复时保存到不同的文件。我知道我得到了结果,因为当我做>>file.txt时 我正在将所有的Results放在一个文件中。每次将结果保存到不同的文件(并通过变量中的文本命名此文件)会很好。但是有点错误。它保存了上次循环迭代的结果

    @echo off
setlocal ENABLEDELAYEDEXPANSION
    set vidx=0
    for /F "tokens=1* delims=;" %%A in (list2.csv) do (
        SET /A vidx=!vidx! + 1
        set var!vidx!=%%A
        rxrepl -f temp.txt -s "xNAMEx" -r "%%A">file___%var!vidx!%.txt
    )
试着换掉这个
file\uuuuuuuuuuuu%var!vidx!%.txt
通过此
file\uuuuuuuuuuuuvar!!vidx!!!.txt
您不需要任何变量来获得所需的结果。此外,如果您从未引用变量
%B
“tokens=1*”
,则
“tokens=1”
是默认值。因此,您只需要:

for /F "delims=;" %%A in (list2.csv) do rxrepl -f temp.txt -s "xNAMEx" -r "%%A">"file___%%A.txt"
@ECHO OFF
SETLOCAL enableextensions enabledelayedexpansion
set vidx=0
for /F "tokens=1* delims=;" %%A in (list2.csv) do (
    SET /A "vidx+=1"
    set "var!vidx!=%%~A"
    echo loopvar %%%% A=%%~A "file___%%~A.txt"
    rem next line shows how to treat array-like names 
    call set "filenamepart=%%var!vidx!%%" 
    echo filenamepart=!filenamepart! "file___!filenamepart!.txt"
    rem rxrepl -f temp.txt -s "xNAMEx" -r "%%A">"file___%%~A.txt"
)
如果您真的想构建一个var.N值的“数组”,那么可以使用FINDSTR在每一行前面加上递增的数字(行号)

只需使用
…>“file___%%~A.txt”
而不是错误的
>file__;u%var!vidx!%.txt

@ECHO OFF
SETLOCAL enableextensions enabledelayedexpansion
set vidx=0
for /F "tokens=1* delims=;" %%A in (list2.csv) do (
    SET /A "vidx+=1"
    set "var!vidx!=%%~A"
    echo loopvar %%%% A=%%~A "file___%%~A.txt"
    rem next line shows how to treat array-like names 
    call set "filenamepart=%%var!vidx!%%" 
    echo filenamepart=!filenamepart! "file___!filenamepart!.txt"
    rem rxrepl -f temp.txt -s "xNAMEx" -r "%%A">"file___%%~A.txt"
)

是否启用延迟扩展?要启用延迟扩展,只需将
setlocal enabledelayedexpansion
放在文件的旁边直到不起作用:(,我上传了新的编码工具,它几乎可以工作了-它可以生成文件-谢谢!但是文件看起来像是存储在vidx中的file\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu(名称应取自%%A,存储在var1、var2、var3等中。我制作了变量集名称=%%A并重新绘制了您的!var!!vidx!!!.txt和!name!:)非常感谢!祝您度过愉快的一天!