2013-07-10 22 views
0

我有以下問題:常規列表與此近似的信息:批從橫向相呼應,以水平

Computer1 
DateImplemented 
Computer2 
DateImplemented 
Computer3 
DateImplemented 
<this goes on for a while> 

我想它要這麼做:

Computer1,DateImplemented 
Computer2,DateImplemented 
<etc> 

我一直在嘗試了一堆的方式,但我得到的唯一的輸出是:

Computer1 
DateImplemented. 

這將是50-50情景之一,解決方案重刑很愚蠢或很愚蠢。

預先感謝您!

+0

堆棧溢出是專業和愛好者程序員的問題和答案網站。問題必須**表現出對所解決問題的最小理解**。告訴我們你試圖去做什麼,爲什麼它沒有工作,以及它應該如何工作。另請參閱:[堆棧溢出問題清單](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)。 – Endoro

回答

1
@echo off 
setlocal EnableDelayedExpansion 
set computer= 
for /F "delims=" %%a in (list.txt) do (
    if not defined computer (
     set "computer=%%a" 
    ) else (
     echo !computer!,%%a 
     set computer= 
    ) 
) 

與往常一樣,如果需要,此批flile可以被修改以管理特殊批次字符。

+0

這兩個解決方案都可以工作。 – gmilic

+0

非常感謝你們。現在我知道如何最終做到這一點。 :) – gmilic

2

也許這樣的事情?

@echo off 
setlocal enableextensions enabledelayedexpansion 
set LINENUM=0 
set PREVLINE= 
for /f "delims=" %%a in ('type list.txt') do (
    set /a LINENUM+=1 
    set CURRLINE=%%a 
    set /a REMAINDER=!LINENUM! %% 2 
    if !REMAINDER! EQU 0 echo !PREVLINE!,!CURRLINE! 
    set PREVLINE=!CURRLINE! 
) 
endlocal 

(假設你的數據是在LIST.TXT,當然)

+0

+1,效果很好,除了exclams'!'和空行,但是如果需要的話這可以被修復。 – Endoro

+0

正確 - 如果輸入文件包含需要轉義的空行或字符,則此腳本不起作用。 PowerShell將是一個更好的選擇。 –

+0

轉義不是重點,它用'&><|%^'工作,''延遲擴展'殺死了驚歎號'''和'for'循環中的空行。這可以批量修復。您可以設置「延遲擴展」並用行號填充空行(稍後可以刪除)。 – Endoro