web-dev-qa-db-ja.com

Windowsコマンドラインを使用して、テキストファイルのすべての行を1行に結合します

圧縮、削除、電子メールなど、実行したいファイルのリストを作成するコマンドラインスクリプトを作成しました。リストは次の形式になります。

7z-Compression-List.txt:
========================

file1
file2
file3
etc...

圧縮のために、リスト内のすべての行を1行にまとめたいと思います。このような:

file1、file2、file3など

すべてのファイルを7zコマンドラインアプリに同時にフィードできるようにします。

誰かが私がこれを行う方法を知っていますか?多分ある種のforループ?

5
thebunnyrules

私は別の質問で答えを見つけることになりました、ここ スタックオーバーフローで

@ECHO OFF
setlocal
(SET file-list=)
FOR /f "delims=" %%x IN (7z-Compression-List.txt) DO (
CALL SET file-list=%%file-list%%, %%x
)
SET file-list=%file-list:~1%
ECHO file-list=%file-list%

それは美しく働きました。これは Magooの回答 の修正されたコピーです。この回答が気に入った場合は、元の作成者に賛成してください。

6
thebunnyrules

これに基づく コミュニティウィキ

@echo off
for /f "tokens=* delims=" %%a in ('type 7z-Compression-List.txt') do (
<nul set /p Test=%%a, 
)

ただし、行末に余分な「、」が残ります。

0