簡體   English   中英

批量將兩個文本文件合並為一個文件

[英]Batch Combine two text files into one file, on top of each other

我遇到了一些麻煩,這似乎有些怪異。 我正在開發一個程序,將兩個文件在同一行上合並為一個文件。 只顯示差異。 (抱歉,我的解釋不好)。 因此,我想在這里可視化它:

File 1:

    ()
    []
    /\
--------------------------------------------------

Ander這是另一個文件:

File 2:

                                      ()
                                      []
                                      /\
--------------------------------------------------

運行腳本后,我需要這些文件看起來像這樣:

Combined Version:
    ()                                ()
    []                                []
    /\                                /\
--------------------------------------------------

我正在嘗試找到一種方法來組合文件,並替換現有內容,僅添加新內容。

我嘗試了幾種方法,嘗試使用FC命令,但是無法使該命令正常工作。 我試圖使用類似的命令:

type "File 1.txt" 1>> Combined.txt
type "File 2.txt" 1>> Combined.txt
And I tried: for %f in (*.txt) do type "%f" >> Combined.txt

可悲的是,(按預期方式)所有這些都不以我想要的方式工作,我所有嘗試的輸出都是文件1和文件2,在一個文件中,但沒有合並,就像這樣:

Combined Version:
    ()
    []
    /\
--------------------------------------------------

                                      ()
                                      []
                                      /\
--------------------------------------------------

這就是我要避免的事情;)所以,如果您對本主題有任何了解,請告訴我。 另外,如果您知道執行此操作的任何VBS腳本,請也告訴我。 :)

01/02/2018

編輯:

下面,我使用了Squashman的腳本。.我的所有答案都工作得很好,可悲的是,當我嘗試使用更長的行時,出現了一些錯誤。

File 1:
                 ()                                             
                 []                                             
                 /\                                                          
-----------------------------------------------------------------------------------------------------------

File 2:
                                           ()               
                                           []               
                                           /\                           
----------------------------------------------------------------------------------------------------------- 

結果是這樣的:

                                           ()                                    ()
                                           []                                    []
                                           /\                                    /\
----------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------

因此,該行將自身克隆。 我想做的另一件事是使行直立,就像沒有身體的第三個角色一樣。 可悲的是結果不是我所期望的。 讓我再次形象化:)

File 1:
                       ()                 !             
                       []                 !             
                       /\                 !                           
----------------------------------------------------------------------------------------------------------- 

File 2:
                                          !              ()             
                                          !              []             
                                          !              /\           
-----------------------------------------------------------------------------------------------------------       

而且我得到的有點奇怪。 結果在這里:

                       ()                 file2
                       []                 file2
                       /\                 file2
----------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------    

謝謝。

換完后! 與|:

                       ()                 |                                                       |              ()   
                       []                 |                                                       |              []   
                       /\                 |                                                                     |              /\
----------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------    

02/02/2018

這與批處理文件的要求接近。 唯一的問題是最后一行很長,因為它將行合並在一起。 paste命令將執行相同的操作。

@echo off
setlocal enabledelayedexpansion
< file2.txt ( FOR /F "delims=" %%G IN (file1.txt) DO (
set /p file2=
echo %%G!file2!
)
)>combined.txt
type combined.txt
pause

由於挑戰而完成。 注意:這很慢,因為每個字符必須自己處理。

@echo off
setlocal enabledelayedexpansion
REM read first file to array:
set i=0
for /f "delims=" %%a in (file1.txt) do (
  set /a i+=1
  set "file1-!i!=%%a"
)
REM read second file to array:
set i=0
for /f "delims=" %%a in (file2.txt) do (
  set /a i+=1
  set "file2-!i!=%%a"
)
REM calculate result
for /l %%i in (1,1,%i%) do (
  set "res="
  for /l %%j in (0,1,49) do call :join  %%i %%j
  >>file3.txt echo !res!
)
goto :eof

:join
set "f1=!file1-%1:~%2,1!"
set "f2=!file2-%1:~%2,1!"
if "%f1%" == "" set "f1= "
if "%f2%" == "" set "f2= "
if "%f2%" neq "%f1%" (
  if "%f2%" gtr " " (
    set "f3=%f2%"
  ) else (
    set "f3=%f1%"
  )
) else (
  set "f3=%f1%"
)
set "res=%res%%f3%"
goto :eof

file1.txt

    ()                  |
    qp                  |
    ||                  |
--------------------------------

file2.txt

                                      ()
                                      []
                                      /\
--------------------------------------------------

file3.txt

    ()                  |             ()
    qp                  |             []
    ||                  |             /\
--------------------------------------------------

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM