将批处理文件输出调整为文本文件

时间:2017-09-27 08:54:05

标签: batch-file

所以我会在这里解释一下。

我需要创建一个CSV文件,但是逐个设置文件名很痛苦,所以我想创建一个bat文件。

所以这就是我想出来的,或者实际上是复制和应用的。

在我的批处理文件中,我得到了以下代码:

dir /b > myFiles.txt

很好,很简单,它在文本文件中给出了以下结果:

59019694038.jpg
59019694038_1.jpg
59019694038_2.jpg
59019694038_3.jpg
59019694038_4.jpg
59019694045.jpg
59019694045_1.jpg
59019694045_2.jpg
59019694045_3.jpg
bat.bat
myFiles.txt

但为了让事情变得更容易,我想在找到的每个文件后添加 ;

所以结果将是这样的:

59019694038.jpg;
59019694038_1.jpg;
59019694038_2.jpg;
59019694038_3.jpg;
59019694038_4.jpg;
59019694045.jpg;
59019694045_1.jpg;
59019694045_2.jpg;
59019694045_3.jpg;
bat.bat;
myFiles.txt;

所以我的问题是,如果有人能解释我目前在做什么以及如何得到这个结果。

3 个答案:

答案 0 :(得分:1)

您可以将DIR ...替换为:

(FOR %%f IN (*.*) DO @ECHO %%f;)>myFiles.txt

这比解析文件和替换每一行容易得多。

答案 1 :(得分:0)

如果您不想换行,可以调整LS_DEV的命令:

(FOR %%f IN (*.*) DO @ECHO|set /P=%%f;)>myFiles.txt

答案 2 :(得分:0)

这是一个替代答案,希望将它们输出到一行:

@(For %%A In (*) Do @Set/P "=%%A;"<Nul)>"..\myFiles.txt"

在这种情况下,我已将输出发送到当前目录的父目录中的myFiles.txt,以便它不包含在它自己的结果中。您可以选择将其更改为其他位置,或者如果您愿意,也可以将其包含在自己的内容中。