2015-09-18 164 views
0

我可以在CMD运行以下命令打开钱箱:命令从CMD运行,但不会从批处理文件

ECHO ^G>LPT1 

问题是,当我从一个批处理文件运行此命令,什么都不会发生。 我添加了一个timeout看到什么实际运行命令,它似乎像我的命令时,它运行自动与替换如下:

ECHO G 1>LPT1 

我如何从一个批处理文件运行我原来的命令?
谢谢。

回答

2

将插入符号从^复制到^^作为^ alone是转义字符。

+0

谢谢您的答复,还我怎么能摆脱自动添加空间和1号? – Alex

+1

你测试过了吗?1显示在屏幕上,但未在命令中使用。它是STDOUT流的一个指示符。 (标准输出) – foxidrive

0
ECHO G 1>LPT1 

是完全一样的

ECHO G>LPT1 

第一个是正确的,第二个是基于MSDOS的兼容性和我们大多使用。 CMD将它修复为批处理文件而不是键入,它会改变你看到的内容。

但是在一个文本文件中使用按Ctrl + G CMD重定向

echo echo [ctrl+g]^>lpt1 

如果32位使用edit.com。在编辑中按Ctrl P然后按Ctrl G(它看起来不同于cmd)。

+0

要确认,“echo echo [ctrl + g] ​​>> lpt1”相当于“ECHO^G> LPT1”,但可以从.bat文件而不是CMD运行? – Alex

+0

我试过上面的建议,但寄存器仍然没有打开,如果我打开CMD并输入ECHO^G> LPT1,它会打开,但如果我尝试通过批处理文件做同样的事情,则什么都不会发生。 – Alex

0

如果我能理解,你需要BELL音字符(ASCII 0x07按Ctrl +)发送到LPT1设备。

不幸的是,我的文字编辑器(和notepad.exe以及)按Ctrl键+而另一种方法Alt键 + advised here错误mojibake s到ASCII 0x95后带来转到线对话。这是我的解决办法:从cmd命令行键入

echo @echo(•^>LPT1>D:\bat\SO\32642290a.bat 

其中表示任一Ctrl键 + ģAlt键在监视器上 + 和显示器^G

结果:

32642290a_bat

结果以十六进制的看法:

32642290a_bat_HEX

+0

我尝试了上面的建议,但是寄存器仍然没有打开,如果我打开CMD并键入ECHO^G> LPT1,它会打开,但如果我尝试通过批处理文件做同样的事情,则什么也不会发生。 – Alex

+0

@Alex'type D:\ bat \ SO \ 32642290a.bat'应显示'@echo(> LPT1'伴随着'BELL'声音。与ECHO^G'相同的声音(不重定向到LPT设备)。 – JosefZ

相关问题