Windows批处理文件:文件名的第一个单词为第1列

时间:2015-10-23 12:41:08

标签: batch-file filenames edit

来自computing.net的以下代码几乎完全有用,但需要进行细微更改。我不知道这是如何工作的。有人可以帮忙吗?

for %%a in (*.csv) do call :addId "%%~Na" "%%a"
goto :EOF

:addId
@echo off
for /f "usebackq delims=" %%b in (%2) do (
> #.csv echo ID,%%b
goto :next
)
:next
for /f "usebackq skip=1 delims=" %%b in (%2) do (
 >> #.csv echo %~1,%%b
)
 move #.csv %2
  1. 需要删除插入标题“ID”的代码
  2. 仅使用文件的第一个单词NOT complete file name ---作为第1列值
  3. 这里,单词表示由空格分隔的字母集合。所以第一个单词将是第一个空格之前的字母集合。

    有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

使用for /f解析循环:

def f:Future[(List[Int],List[String])] = Future{
  (List(1,2,3),List("Hello","World"))
}

f onSuccess { case (a,c) => ...}

这将保持标题行的完整。

答案 1 :(得分:1)

你能试试吗?请告诉我它是如何运作的。

    setlocal enabledelayedexpansion
for %%a in (*.csv) do call :addId "%%~Na" "%%a"
goto :EOF



:addId
@echo off
for /f "usebackq delims=" %%b in (%2) do (
rem > #.csv echo ID,%%b
goto :next
)
:next
for /f "usebackq skip=1 delims=" %%b in (%2) do (
    for /f "tokens=1 delims= " %%x in ("%~1") do set firstWord=%%x
    >> #.csv echo !firstWord!,%%b
)
move #.csv %2