简单的批处理文件不执行?

时间:2014-06-19 05:00:53

标签: windows shell batch-file command-line command

我正在尝试使用以下

合并目录中的txt文件
@echo off
cd /d C:\textfiles\
for %f in (*.txt) do type "%f" >> C:\Users\Desktop\output.txt

但我没有得到任何输出(因为最后一行我很确定),有人可以帮助我吗?

另外,如何使输出文件名自动附加日期的文本或日期,例如output_random.txt或output_19.06.14.txt?

编辑代码(感谢Stephan)但没有附加日期:

@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

1 个答案:

答案 0 :(得分:4)

在批量文件内部,您必须使用%%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%

延伸阅读 - How does the Windows Command Interpreter (CMD.EXE) parse scripts?