【发布时间】:2020-09-13 01:14:41
【问题描述】:
我有个小问题,我想用下面的批处理脚本来编辑数据。
@echo off
set "txt=C:\Users\Desktop\test-batch\input.txt"
set "temp=C:\Users\Desktop\test-batch\output.txt"
for /f "tokens=1-43 delims=; " %%a in (%txt%) do echo %%a;%%ac;%%ad;%%ae;%%af;%%ag;%%ah;%%ai;%%aj;%%ak;%%al;%%am;%%an;%%ao;%%ap;%%aq; > %temp%
输入.txt:
1;2;2;1;1;1;1;1;1;1;;;;;;;;;;;;;;;;1;;;1-Trackingnummer;2-Trackingnummer;3-Trackingnummer;4-Trackingnummer;5-Trackingnummer;6-Trackingnummer;7-Trackingnummer;8-Trackingnummer;9-Trackingnummer;10-Trackingnummer;11-Trackingnummer;12-Trackingnummer;13-Trackingnummer;14-Trackingnummer;15-Trackingnummer;
output.txt (列1 和列29-43):
1;1-Trackingnummer;2-Trackingnummer;3-Trackingnummer;4-Trackingnummer;5-Trackingnummer;6-Trackingnummer;7-Trackingnummer;8-Trackingnummer;9-Trackingnummer;10-Trackingnummer;11-Trackingnummer;12-Trackingnummer;13-Trackingnummer;14-Trackingnummer;15-Trackingnummer;
谁能告诉我问题出在哪里以及为什么它不起作用?
【问题讨论】:
-
嗨,你至少应该告诉我们这批的目标是什么,你想要输出什么以及输入是什么,以便了解什么应该是正确的行为并能够提供帮助你。
-
在命令提示符窗口中输入
for /?并阅读帮助文本;您会发现没有%%aa、%%ab等。要获得更多令牌,请嵌套两个for /F循环,如下所示:for /F "usebackq tokens=1-25* delims=;" %%A in ("%txt%") do for /F "tokens=1-18 delims=;" %%a in ("%%Z") do echo %%A...%%Y; %%a...%%r。或者,更改tokens选项以跳过您不使用的令牌:for /F "usebackq tokens=1,29* delims=;" %%A in ("%txt%") do echo %%A;%%B;%%C。无论如何,请注意连续的分隔符被折叠成一个! -
我强烈建议您使用edit your question 并包含您想要的输出!
:( -
谢谢,这行得通:for /F "usebackq tokens=1-25* delims=;" %%A in ("%txt%") for /F "tokens=1-18 delims=;" %%a in ("%%Z") 做回波 %%A;%%M;%%N;%%O;%%P;%%Q;%%R;%%S;%%T;% %U;%%V;%%W;%%X;%%Y;%%a;%%b; > %temp%
标签: windows csv batch-file cmd