For loop 如何在/f“中添加空格;代币=*";
这是myfile.txt,我想在第二列中添加空格,如示例所示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 %%
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(
大纲的最后一个字符以外的所有字符(将是逗号)+
)代码>
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。