web-dev-qa-db-ja.com

Windowsバッチ-複数のテキストファイルを1つに連結します

複数のテキストファイルを1つに連結するスクリプトを作成する必要があります。使いやすい

type *.txt > merged.txt

しかし、要件は「同日からのファイルをファイルday_YYYY-DD-MM.txtに連結する」ことです。私はLinuxユーザーで、Windowsバッチは私にとって地獄です。

編集:そのWindows XP

26
SpeedEX505

Windows typeコマンドは、UNIX catと同様に機能します。

例1:ファイル名とマージ(これによりfile1.csvとfile2.csvがマージされ、concat.csvが作成されます)

type file1.csv file2.csv > concat.csv

例2:パターンでファイルをマージ(これにより、csv拡張子を持つすべてのファイルがマージされ、concat.csvが作成されます)

type  *.csv > concat.csv
30
Shan

最も基本的には、バッチファイルからのファイルの連結は「コピー」で行われます。

copy file1.txt + file2.txt + file3.txt concattedfile.txt
26
Lance

コピーする必要があるすべてのファイルを別のフォルダーに配置します。これにより、Cドライブに簡単に配置できます。

コマンドプロンプトを開く-windows> type cmd> selectコマンドプロンプト。

デフォルトのディレクトリポインティングを見ることができます-例:C:[フォルダ名]>。 'cd [Folder_Name]'コマンドを使用して、コピーするファイルを配置したフォルダーを指すようにディレクトリを変更します。

ディレクトリをポイントした後、「dir」と入力すると、フォルダ内にあるすべてのファイルが表示され、すべてが適切に配置されていることが確認されます。

次に、「copy * .txt [newfile_name] .txt」と入力してEnterキーを押します。

できた!

個々のファイルのすべてのテキストは[newfile_name] .txtにコピーされます

8
Kingsman

すでに述べた他のポイントのいくつかを繰り返しますが、連結したいフォルダーにファイルがある場合に役立つ3番目の例を含めます。

例1(同じフォルダー内のファイル):

copy file1.txt+file2.txt+file3.txt file123.txt

例2(同じフォルダー内のファイル):

type *.txt > combined.txt

例3(ファイルは複数のフォルダーに存在し、newfileoutput.txtが存在しないことを前提としています):

for /D %f in (folderName) DO type %f/filename.txt >> .\newfileoutput.txt
3
Gigasoup

これを試して:

@echo off
set yyyy=%date:~6,4%
set mm=%date:~3,2%
set dd=%date:~0,2%

set /p temp= "Enter the name of text file: "
FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%temp%.txt

このコードでは、日付を入力できる「day_」の後にファイル名を設定するように求められます。実際の日付のようにファイルに名前を付けたい場合、これを行うことができます:

FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%yyyy%-%mm%-%dd%.txt
1

タイプを使用してそれを行うことができます:

type"C:\<Directory containing files>\*.txt"> merged.txt

ディレクトリ内のすべてのファイルがファイルmerged.txtに追加されます。

1
Jorgesys

通常のCATコマンドを使用してファイルをマージできます。

D:> cat * .csv> outputs.csv

0
Sadheesh

cat "入力ファイル"> "出力ファイル"

これはPowerShellで動作します。PowerShellは、現在のWindowsバージョンでWindows優先シェルであるため、動作します。また、「タイプ」または「コピー」が失敗する大きなファイルで動作する上記の回答の唯一のバージョンです。

0
Stephen