我有一个test.txt
这样的文件:
sylvester, stallone, 35,20, florida;
brad, pitt, 40,25, california;
sean, connery, 15,80, london;
我必须创建一个新的姓氏,其中姓氏以15
列开头,名称在30
。
我想用批处理文件来完成。
我设法做到的是:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "tokens=1,2 delims=," %%G IN (test.txt) DO (
SET "line=%%H"
SET "spaces= "
ECHO (!spaces!!line!!spaces!%%G
)
) >> output.txt
pause
但是这样%%G
并不总是从同一个位置开始,而是取决于有多少个字符%%H
。而且,不会在output.txt
上写,但它会让我在批处理窗口中看到结果。
我知道这可能是一个微不足道的问题,但我是编程新手。
答案 0 :(得分:0)
@echo off
setlocal enabledelayedexpansion
del output.txt
set "spaces= " :: 15 spaces
(FOR /F "tokens=1,2 delims=, " %%G IN (test.txt) DO (
SET "line=%spaces%%%H %spaces%"
set "line=!line:~0,29!"
echo !line:~0,29!%%G
)) >output.txt
在姓氏前添加14个空格(以确保名称从15开始)并追加另外15个空格(以获得至少29的累积长度)。然后将其修剪为前29个字符并附加名称(在Pos 30处) (为delims添加了一个空间以便正确处理)