所以我会在这里解释一下。
我需要创建一个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;
所以我的问题是,如果有人能解释我目前在做什么以及如何得到这个结果。
答案 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
,以便它不包含在它自己的结果中。您可以选择将其更改为其他位置,或者如果您愿意,也可以将其包含在自己的内容中。