Windows DOS批处理文件命令不执行

Windows DOS批处理文件命令不执行,windows,batch-file,cmd,Windows,Batch File,Cmd,以下命令行正确执行: MagBoltz32 < input.txt > out.txt MagBoltz32out.txt 可执行文件需要如上括号中的输入并输出文本文件。下面的“batch.BAT”文件(现在包括转义字符)不执行,只是挂起,好像需要更多的输入。 MagBoltz32 ^< input.txt ^> out.txt MagBoltz32^out.txt 执行batch.BAT只会导致光标闪烁。最终,该命令行将进入FOR循环,该循环在多个输入/输出文件上循环。我确实可以访

以下命令行正确执行: MagBoltz32 < input.txt > out.txt MagBoltz32out.txt

可执行文件需要如上括号中的输入并输出文本文件。下面的“batch.BAT”文件(现在包括转义字符)不执行,只是挂起,好像需要更多的输入。 MagBoltz32 ^< input.txt ^> out.txt MagBoltz32^out.txt
执行batch.BAT只会导致光标闪烁。最终,该命令行将进入FOR循环,该循环在多个输入/输出文件上循环。我确实可以访问源代码。

在某些操作系统中,您需要避开管道,这样语法就可以完全有效。对于批处理文件(),尤其如此。。。是否已检查以确保所有文件都位于执行批处理文件的同一路径中?如果从C:\foo运行批处理,即使bath.BAT在C:\bar中,input.txt也应该在C:\foo中。

在某些操作系统中,您需要转义管道和|以便语法完全有效。对于批处理文件(),尤其如此。。。是否已检查以确保所有文件都位于执行批处理文件的同一路径中?如果从C:\foo运行批处理,即使bath.BAT位于C:\bar中,input.txt也应位于C:\foo中。

这不是“括号中的输入”。程序不使用任何参数(至少不使用显示的语法)。它从STDIN获取输入并写入STDOUT

output.txt
将STDOUT重定向到文件
output.txt
,而不是将其写入屏幕

仅当您希望特殊字符显示在屏幕上而不是“执行”它(简单地说)时才需要转义字符,因此在您的情况下,转义重定向字符没有意义,但会禁用重定向。

这不是“括号中的输入”。程序不使用任何参数(至少不使用显示的语法)。它从STDIN获取输入并写入STDOUT

output.txt
将STDOUT重定向到文件
output.txt
,而不是将其写入屏幕


仅当您希望特殊字符显示在屏幕上而不是“执行”它(简单地说)时才需要转义字符,因此在您的情况下,转义重定向字符没有意义,但会禁用重定向。

第二个命令看起来根本不是有效的语法。它不起作用并不奇怪。无需逃避这一点。
MagBoltz32
似乎希望在STDIN(控制台输入)上获得数据
那样退出重定向,可执行文件将等待控制台输入(键入内容,完成后键入
Ctrl+Z
(文件结束代码)并输入),然后您将收到输出数据
重定向控制台输出一个文件
out.txt
,因此如果您像
^>
那样转义,我假设您将在控制台窗口中获得输出…只有一个命令(可执行文件)需要两个输入。第一个输入查找文本文件,并要求该文件位于括号中。第二个输入是输出文件。简而言之:
MagBoltz32out.txt
表示执行
MagBoltz32
并重定向输入和输出;这在命令行或批处理文件中起作用
MagBoltz32^out.txt
是一个完全不同的东西,没有输入和输出被重定向。。。。除非该命令放置在用撇号括起来的
for/F
命令中:
for/F%%a in('MagBoltz32^out.txt')do…
这是该命令必须以这种方式写入的唯一情况。第二个命令看起来根本不是有效语法。它不起作用并不奇怪。无需逃避这一点。
MagBoltz32
似乎希望在STDIN(控制台输入)上获得数据
那样退出重定向,可执行文件将等待控制台输入(键入内容,完成后键入
Ctrl+Z
(文件结束代码)并输入),然后您将收到输出数据
重定向控制台输出一个文件
out.txt
,因此如果您像
^>
那样转义,我假设您将在控制台窗口中获得输出…只有一个命令(可执行文件)需要两个输入。第一个输入查找文本文件,并要求该文件位于括号中。第二个输入是输出文件。简而言之:
MagBoltz32out.txt
表示执行
MagBoltz32
并重定向输入和输出;这在命令行或批处理文件中起作用
MagBoltz32^out.txt
是一个完全不同的东西,没有输入和输出被重定向。。。。除非该命令放置在一个用撇号括起来的
for/F
命令中:
for/F%%a in('MagBoltz32^out.txt')do…
这是该命令必须以这种方式写入的唯一情况。对于一个批处理文件,行“MagBoltz32out.txt”的输出是“MagBoltz32 0out.txt”但是out.txt是正确的,并且已成功执行。谢谢,没关系
(“1”=STDOUT)。如果没有给出数字,解析器将插入默认值。对于具有行“MagBoltz32out.txt”的批处理文件,到命令行的输出为“MagBoltz32 0out.txt”,但是out.txt是正确的,并且已成功执行。谢谢,没关系
(“1”=STDOUT)。如果没有给出数字,解析器将插入默认值。我错误地逃过了重定向运算符我检查过了。我错误地逃过了重拨