创建的批处理文件立即关闭,而不执行编写的代码

时间:2018-03-20 09:24:14

标签: batch-file for-loop cmd

我在使用/制作.bat文件方面相当新。 我试图制作一个令人难以置信的简单文件,它将.txt文件组合成.tmp文件,然后将.tmp文件重命名为.txt文件。 这是代码:

@echo off
title Combine Text Files
for %f in (*.txt) do type %f >> Combined.tmp & echo. >> Combined.tmp
rename Combined.tmp Combined.txt
pause

我想到的问题是,当我尝试运行.bat文件时,没有任何反应。 CMD立即关闭。 如果我尝试在CMD的第三行上运行脚本,它可以正常工作并创建.tmp文件。 同样,如果我运行.bat文件没有第三行的脚本,我可以看到"按任意键继续.."正好。 在.bat文件中,我在使用for循环时出错吗?

1 个答案:

答案 0 :(得分:0)

在批处理文件中使用%命令时,需要将for加倍,因为解析器的工作原理如下:

@echo off
title Combine Text Files
for %%f in (*.txt) do (
  type "%%~ff">>"Combined.tmp"
  (echo()>>"Combined.tmp"
)
rename "Combined.tmp" "Combined.txt"
pause

FOR语法中的错误是终止bat文件执行的极少数情况之一。

由于type命令支持通配符,您可以尝试使用:

type "*.txt">"Combined.tmp"