我正在尝试使用以下方法合并目录中的txt文件
@echo off cd /d C:\textfiles\ for %f in (*.txt) do type "%f" >> C:\Users\Desktop\output.txt
但我没有得到任何输出(因为我很确定最后一行),任何人都可以帮助我吗?
另外如何使输出文件名自动追加date的文本或date,例如output_random.txt或output_19.06.14.txt?
编辑的代码(感谢斯蒂芬),但不追加date:
@echo off cd /d "C:\TextFiles" for /f %%i in ('wmic os get localdatetime ^|find "20"') do set dt=%%i set dt=%dt:~0,8% for %%f in (*.txt) do type "%%f" >> C:\TextFiles\output-%dt%.txt
在批处理文件中,你必须使用%%f
而不是%f
,它只能在命令行上工作:
for %%f in (*.txt) do type "%%f" >> C:\Users\Desktop\output.txt
对于“随机或日期”部分:
正如你所说的“随机或日期”,我认为,日期不必具有特定的格式。 最好的方法(因为独立于区域设置)将是:
for /f %%i in ('wmic os get localdatetime ^|find "20"') do set dt=%%i set dt=%dt:~0,8%
%dt%
将采用YYYYMMDD格式。 你可以很容易地添加设置时间set dt=%dt:~0,14%
(YYYYMMDDhhmmss)并输出到...output-%dt%.txt
将%dt%
格式化为DD-MM-YYYY:
set dt=%dt:~6,2%-%dt:~4,2%-%dt:~0,4%
扩展阅读 – Windows命令解释器(CMD.EXE)如何解析脚本?