我有一个.csv文件(source.csv),其中包含以下内容:
_name ; _ IDIQ-000011; a0A4E000001m9UeUAIIQ-000010; a0A4E000001m9EhUAIIQ-000009; a0A4E000001m7v5UAA我想要的是得到……
这是一个将生成.csv文件的第一个数据行的命令。
FOR /F "delims=" %%a IN ('powershell -NoL -NoP "(Get-Content '.\source.csv')[1]"') DO (SET "LINE2=%%~a") ECHO LINE2 is set to %LINE2%
另一种可能更明显的方法是使用 Select-Object 获得所需的线。
Select-Object
FOR /F "delims=" %%a IN ('powershell -NoL -NoP "Get-Content '.\source.csv' | Select-Object -Skip 1 -First 1"') DO (SET "LINE2=%%~a")
当然,如果脚本是用PowerShell编写的,那么它就更容易,更清晰。
$line2 = (Get-Content '.\source.csv')[1] $line2 = Get-Content '.\source.csv' | Select-Object -Skip 1 -First 1
我无法用你的问题说出来,但这是你想要实现的目标吗?
@Set "line2="&((Set/P "="&Set/P "line2=")<"source.csv") 2>Nul @If Defined line2 (Set/P "=%line2%"<Nul&Echo=)>>"target.csv"
因为您可以从批处理文件中这样做,而不使用 Set /P :
Set /P
@For /F "UseBackQ Skip=1 Delims=" %%A In ("source.csv")Do @(Echo=%%A)>>"target.csv"&Exit/B