2014-01-08 65 views
0

我有一個自動創建的包含多列的CSV文件。其中一列被稱爲「sn」。我需要確保sn永遠不是CSV文件中的第一列。不幸的是我無法編輯創建程序的程序。批量移動CSV文件中的列

因此,在一個批處理文件,我想:

  • 開放CSV
  • 檢查其中的sn列是
  • 如果它是在第1列,然後將其移動到另一列(列2是精)
  • 保存更改

這是可能在批處理文件?

謝謝。

+0

什麼操作系統,什麼編程語言,任何約束?你嘗試了什麼? – Andy

+0

明天你會要求使用批處理文件編寫數據庫服務器。爲什麼不使用任何真正的編程語言來做到這一點? – smnbbrv

+0

你的問題的答案是「是的,這是可能的」。但相當費力。使用紅寶石和csv模塊,這是微不足道的。只需谷歌「紅寶石csv教程」,你可以在30分鐘內爲這個任務寫一個腳本。 – Draugr

回答

0
@ECHO OFF 
SETLOCAL 
(
SET "choosing=" 
SET "movecol=" 
FOR /f "tokens=1*delims=," %%a IN (q20995223.txt) DO (
    IF NOT DEFINED choosing (
    IF "%%a"=="sn" SET movecol=Y 
    SET choosing=N 
) 
    IF DEFINED movecol (ECHO(%%b,%%a) ELSE (ECHO(%%a,%%b) 
) 
)>newfile.txt 

GOTO :EOF 

如果在第一行的第一列包含sn,則剩餘的列向左移動一個和sn列移動到最後。否則,該文件僅轉載至newfile.txt

q20995223.txt是我的測試文件。將它們重命名爲適合您的任務。

+0

太棒了。謝謝! – user2145047