![通过 Windows 命令行将文本文件的所有行合并为一行](https://linux22.com/image/1528790/%E9%80%9A%E8%BF%87%20Windows%20%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B0%86%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E7%9A%84%E6%89%80%E6%9C%89%E8%A1%8C%E5%90%88%E5%B9%B6%E4%B8%BA%E4%B8%80%E8%A1%8C.png)
我编写了一个命令行脚本,列出我想执行操作(例如压缩、删除或通过电子邮件发送)的文件。该列表的格式如下:
7z-Compression-List.txt:
========================
file1
file2
file3
etc...
为了压缩,我想将列表中的所有行合并为一行。像这样:
文件 1、文件 2、文件 3 等
这样我就可以同时将所有文件输入 7z 命令行应用程序。
有人知道我该怎么做吗?也许是某种 for 循环?
答案1
我最终在另一个问题中找到了答案,这里在 Stack Overflow 中
@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 的回答,如果您喜欢这个答案,请随意为原作者点赞。
答案2
基于此社区维基:
@echo off
for /f "tokens=* delims=" %%a in ('type 7z-Compression-List.txt') do (
<nul set /p Test=%%a,
)
但是它在行尾留下了一个多余的“,”。