源文件内容(csv):
430,081216,081216,131231231231,,'',8686866,'Shamrock',,
1, ,5,,'',, ,01234567,32.50,
2,-,3,,'',, ,382847,25.92,
3, ,5,,'',, ,98765430,32.89,
目标文件需要是(csv):
H,430,081216,081216,131231231231,,'',8686866,'Shamrock',,
D,1, ,5,,'',, ,01234567,32.50,
D,2,-,3,,'',, ,382847,25.92,
D,3, ,5,,'',, ,98765430,32.89,
我需要在文件的第一行的开头添加“H”,并在文件中的所有后续行的开头添加“D”,并另存为另一个文件名。我不知道这样做的最好方法。我是这方面的新手,非常感谢您提供的任何帮助。
答案 0 :(得分:1)
也许这种更简单的方法可能更容易理解......
@echo off
setlocal EnableDelayedExpansion
set "letter=H"
(for /F "delims=" %%a in (source.csv) do (
echo !letter!,%%a
set "letter=D"
)) > target.csv
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "filename1=%sourcedir%\q39652124.txt"
SET "outfile=%destdir%\outfile.txt"
SET "hord="
(
FOR /f "usebackqdelims=" %%a IN ("%filename1%") DO (
IF DEFINED hord (ECHO D%%a) ELSE (SET "hord=D"&ECHO H%%a)
)
)>"%outfile%"
GOTO :EOF
您需要更改sourcedir
,filename1
,outfile
和destdir
的设置以适应您的具体情况。
我使用了一个名为q39652124.txt
的文件,其中包含我的测试数据。
生成定义为%outfile%
的文件读取文件的每一行,将行内容分配给%%a
。由于hord
在开始时设置为 nothing ,因此未定义,因此将hord
设置为某个内容,前缀为H
的行为{{1} }编辑。现在定义echo
,因此输出前缀为hord
的每一行。
答案 2 :(得分:0)
虽然你没有表现出任何自己的努力,但我决定提供一个快速的答案。在提问之前,请自己下次学习并做一些工作!
所以这是一个修改命令行提供的所有文件的脚本:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
for %%F in (%*) do (
set "FLAG=#"
for /F delims^=^ eol^= %%L in ('
type "%%~F" ^& ^
REM ^> "%%~F" break
') do (
REM >> "%%~F" (
if defined FLAG (
echo H,%%L
set "FLAG="
) else (
echo D,%%L
)
REM )
)
)
endlocal
exit /B
测试后,从脚本中删除三个大写的REM
命令!
请注意,修改了给定的文件而不提示和而不检查第一列alread是否包含H
和D
!< / p>