我有一个文本文件,我需要在字符后添加'1'并删除前两列之间的任何空格。我试图使用以下查询,但收到此错误
201N001466 AD55JGU0604140 VOLKSWAGEN GOLF S BLACK
201N001437 AF14HFY0604140 BMW 520D SE AUTO GREY
201N001298 AF51NSN0604140 SKODA FABIA COMFORT 8V
这是我希望在N之后添加'1'的格式,并删除前2列之间的任何空格。
201N1001466AD55JGU0604140 VOLKSWAGEN GOLF S BLACK
201N1001437AF14HFY0604140 BMW 520D SE AUTO GREY
201N1001298AF51NSN0604140 SKODA FABIA COMFORT 8V
这是我的查询
@echo off
if [%1]==[] then echo File name missing & goto :EOF
(for /f "tokens=1" %%a in (%1) do echo %%a) > %~n1_out.txt
答案 0 :(得分:1)
这是一种强有力的方法。
这使用名为repl.bat
的帮助程序批处理文件 - 从https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat
将repl.bat
放在与批处理文件相同的文件夹中或放在路径上的文件夹中。
@echo off
type "file.txt" | repl "(.*?N)(.*?) {1,}(.*)" "$11$2$3" >"newfile.txt"
答案 1 :(得分:1)
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,*" %%a in (infile.txt) do (
set a=%%a
echo !a:~0,4!1!a:~4!%%b %%c
) >>outfile.txt
说明:
201N001466 AD55JGU0604140 VOLKSWAGEN GOLF S BLACK
token 1 token 2 token 3 ( token * ).........................
echo !a:~0,4!1!a:~4!%%b %%c
!a:~0,4! first 4 chars from token 1
1 the inserted "1"
!a:~4! Chars 5 to end of token 1 (counting starts at zero)
%%b token 2
%%c token * (Rest of the line)
答案 2 :(得分:0)
我将采用的方法是为与空间对应的数字制作7个变量(使用你对其他strings
(具有不同名称)的所有内容),如:
set num1=201N
set num2=001466
set num3=001437
set num4=001298
set num5=AD55JGU0604140
set num6=AF14HFY0604140
set num7=AF51NSN0604140
当你用空格回应它(如果你回应它)时你会这样做(第一行):
echo %num1%%num2% %num5% Golf S Black
当你去添加' 1'在一行中再添加一个变量并添加该行(为每一行创建一个单独的变量)
set num8=%num1%1%num2%%num5% Golf S Black
就这样做是为了另外两行。
希望有所帮助,谢谢!