For loop 如何在/f“中添加空格;代币=*";

For loop 如何在/f“中添加空格;代币=*";,for-loop,batch-file,cmd,For Loop,Batch File,Cmd,这是myfile.txt,我想在第二列中添加空格,如示例所示 ARK,LAR SNE,QNE,898,ILO,SNE,SNE,LAR,LAR,545 AUS,MNY P08,TTL,7776,STO,STL,STL,MNY,MNY,567 BOS,MTZ TNK,SDK,444,PPO,TNK,TNK,MTZ,MTZ,456 这是我正在使用的代码 for /f "tokens=* " %%i in (myfile.txt) do call :echo2 %%i %%J %%

这是myfile.txt,我想在第二列中添加空格,如示例所示

ARK,LAR    SNE,QNE,898,ILO,SNE,SNE,LAR,LAR,545
AUS,MNY    P08,TTL,7776,STO,STL,STL,MNY,MNY,567
BOS,MTZ    TNK,SDK,444,PPO,TNK,TNK,MTZ,MTZ,456
这是我正在使用的代码

for /f  "tokens=* " %%i in (myfile.txt) do call :echo2 %%i %%J %%K %%L %%M %%N %%O %%P %%Q %%R %%S
goto :EOF
:echo2
echo insert ('%1','%2','%3','%4','%5','%6','%7','%8','%9','%10'); >>myfile1.txt
goto :EOF

它的显示结果,应该占空间的地方我缺少的任何帮助都很感激

如果我理解正确,您想保留文本中第一个和第二个逗号之间的空格,对吗?试试这个:

@echo off

for /f "tokens=1-10 delims=," %%a in (myfile.txt) do (
  >>myfile1.txt echo.insert ('%%a','%%b','%%c','%%d','%%e','%%f','%%g','%%h','%%i','%%j'^);
)

如果我理解正确,您希望保留文本中第一个和第二个逗号之间的空格,对吗?试试这个:

@echo off

for /f "tokens=1-10 delims=," %%a in (myfile.txt) do (
  >>myfile1.txt echo.insert ('%%a','%%b','%%c','%%d','%%e','%%f','%%g','%%h','%%i','%%j'^);
)
试试这个:

@echo off

for /f "tokens=1-10 delims=," %%a in (myfile.txt) do (
  >>myfile1.txt echo.insert ('%%a','%%b','%%c','%%d','%%e','%%f','%%g','%%h','%%i','%%j'^);
)
@echo off & setlocal
(for /f  "delims=" %%i in (myfile.txt) do (
    set "line='%%i'"
    setlocal enabledelayedexpansion
    set "line=!line:,=','!"
    set "line=!line:    =    ','!"
    echo(insert (!line!^);
    endlocal
))>myfile1.txt
试试这个:

@echo off

for /f "tokens=1-10 delims=," %%a in (myfile.txt) do (
  >>myfile1.txt echo.insert ('%%a','%%b','%%c','%%d','%%e','%%f','%%g','%%h','%%i','%%j'^);
)
@echo off & setlocal
(for /f  "delims=" %%i in (myfile.txt) do (
    set "line='%%i'"
    setlocal enabledelayedexpansion
    set "line=!line:,=','!"
    set "line=!line:    =    ','!"
    echo(insert (!line!^);
    endlocal
))>myfile1.txt
这项工作应该在对列没有实际限制的情况下完成——当然,前提是逗号是可靠的列结束分隔符

  • 对于源文件中的每一行,将整行指定给
    dataline
    并清除
    outline
  • 然后从
    数据行
    中取第一个标记,用逗号分隔,引用它,添加逗号并将其附加到
    大纲
    ;然后将
    dataline
    设置为第一个逗号后的行的剩余部分
  • 重复此操作,直到
    数据行中没有剩余内容
  • 输出文本
    insert(
    +除了
    大纲的最后一个字符以外的所有字符(将是逗号)+
这项工作应该在对列没有实际限制的情况下完成——当然,前提是逗号是可靠的列结束分隔符

  • 对于源文件中的每一行,将整行指定给
    dataline
    并清除
    outline
  • 然后从
    数据行
    中取第一个标记,用逗号分隔,引用它,添加逗号并将其附加到
    大纲
    ;然后将
    dataline
    设置为第一个逗号后的行的剩余部分
  • 重复此操作,直到
    数据行中没有剩余内容
  • 输出文本
    insert(
    +除了
    大纲的最后一个字符以外的所有字符(将是逗号)+

您不能超过9个变量,因此您的脚本在第9个变量之后无法运行。您可以使用for/f将每一行完全复制为原始文件,如下所示:

for /f  "tokens=* " %%i in (myfile.txt) do echo %%i >>myfile1.txt
goto :EOF

您不能超过9个变量,因此脚本在第9个变量之后无法运行。您可以使用for/f将每一行完全复制为原始文件,如下所示:

for /f  "tokens=* " %%i in (myfile.txt) do echo %%i >>myfile1.txt
goto :EOF

这不是java。可能是批?我想没有%10。。您必须调用
SHIFT
。阅读:好吧,看看你的代码,它注定要失败。您的元变量是
%%i
但您正在传递
%%i%%J..
并且元变量是区分大小写的。
标记=*
表示“将所有标记放在第一个元变量中”,因为您发布的文本不包含
插入(“
我们可以断定这是您的源数据。它包含空格。您所说的“在第二列中插入空格”是什么意思?如何?向我们展示并清楚地指出您的源数据是什么,以及您希望从该源导出的输出数据是什么,否则我们只是从一个不满足您需要的程序中猜测。是的,基本上我不希望o在windows中编写批处理脚本是的,我想在windows中编写批处理脚本,该脚本将创建myfile.txt文件,如insert(ARK’、'LAR SNE’、'QNE’、'898’、'ILO’、'SNE’、'SNE’、'LAR’)这不是java。批处理可能吗?我不认为有%10。你必须调用
SHIFT
。阅读以下内容:看看你的代码,它注定会失败。你的元变量是
%%I
,但你传递的是
%%I%%J..
而元变量是区分大小写的。
令牌=*
的意思是“将所有标记放在第一个元变量中”,因为您发布的文本不包含
insert(“
我们可以断定这是您的源数据。它包含空格。您所说的“在第二列中插入空格”是什么意思?如何?向我们展示并清楚地指出您的源数据是什么,以及您希望从该源导出的输出数据是什么,否则我们只是从一个不满足您需要的程序中猜测。是的,基本上我不希望o在windows中编写批处理脚本是的,我想在windows中编写批处理脚本,该脚本将创建myfile.txt文件,如insert(ARK’、'LAR SNE’、'QNE’、'898’、'ILO’、'SNE’、'SNE’、'LAR’)感谢Peter感谢您的解释
tokens=1*
-->非常好用。+1.感谢Peter感谢您的解释
tokens=1*
-->非常好用。+1。