简单的batch file不执行?

我正在尝试使用以下方法合并目录中的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)如何解析脚本?