2017-09-04 79 views
1

如何創建批處理文件,以從CSV文件中刪除從特定列雙引號如何創建批處理文件,以從CSV文件中刪除從特定列雙引號

輸入CSV文件:

"DocumentType","Company","Division","SeasonYear","Style" 
"832","XYZ","S17","2017","S" 
"832","XYZ","S17","2017","M" 

我想從列1中刪除雙引號,其中值將在標題(第一條記錄)中爲DocumentType,對於其餘記錄則爲832。

預期的結果應該是:

DocumentType,"Company","Division","SeasonYear","Style" 
832,"XYZ","S17","2017","S" 
832,"XYZ","S17","2017","M" 

我試着用下面的批處理腳本,但它取代所有雙引號中的文件。

@echo off 
setlocal EnableDelayedExpansion 

set FileIn=out.csv 
set FileOut=in2.csv 

(
    for /F "usebackq tokens=*" %%A in ("%FileIn%") do (
    set Line=%%A 
    set Line=!Line:"=! 
    for /L %%B in (1,1,20) do (
     set Line=!Line: ,=,! 
     set Line=!Line:, =,! 
    ) 
    echo.!Line! 
    ) 
) > "%FileOut%" 

請指教。

回答

0
@ECHO Off 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
SET "destdir=U:\destdir" 
SET "filename1=%sourcedir%\q46039339.txt" 
SET "outfile=%destdir%\outfile.txt" 
(
FOR /f "usebackqtokens=1*delims=," %%a IN ("%filename1%") DO ECHO %%~a,%%b 
)>"%outfile%" 

GOTO :EOF 

你需要改變的sourcedirdestdir設置以適合你的情況。

我用了一個名爲q46039339.txt的文件,其中包含我的測試數據。

可生產定義爲%OUTFILE%

文件中讀取的輸入文件的每行中,第一,%%a,其餘的到%%b之前分配所述部分

使用~操作員刪除引號從%%a開始,添加commad並回流該行的其餘部分。

圍繞for語句的括號允許將echo es重定向到定義的新文件。

2

單行批處理文件解決方案:

輸入和輸出的.csv文件名作爲必要
@(For /F Tokens^=1*Delims^=^" %%A In (input.csv) Do @Echo %%A%%B)>output.csv 

變化。

+0

這對於幫助 這適用於第一個記錄。但是我想對輸入文件 –

+0

中的所有行重複此操作。由於您現在有工作解決方案,因此我建議您決定將哪個作爲解決方案,並將其標記爲您接受的答案。 – Compo

+2

簡單:'(for/F「tokens = 1 * delims =,」%(in input.csv)do @echo%〜a,%b)> output.csv'(從命令行) – Aacini

0

這是完全符合我的要求的批處理代碼。首先讀取所有CSV文件,並替換其中「DocumentType」 = DocumentType和「832」 = 832

@echo off 
setlocal EnableDelayedExpansion 

copy 832*.csv 832_tmp.csv 
set FileIn=832_tmp.csv 
set FileOut=832.csv 

(
    for /F "usebackq tokens=*" %%A in ("%FileIn%") do (
    set Line=%%A 
        REM replace "DocumentType" to DocumentType and "832" to 832 
    set Line=!Line:"DocumentType"=DocumentType! 
    set Line=!Line:"832"=832! 

    echo.!Line! 
) > 832.csv   REM wtite output file 
) 
del 832_tmp.csv   REM delete temporary created file 
相關問題