【问题标题】:Command runs from CMD but not from batch-file命令从 CMD 运行,但不是从批处理文件运行
【发布时间】:2015-09-18 01:02:09
【问题描述】:

我可以通过在CMD 中运行以下命令来打开钱箱:

ECHO ^G>LPT1

问题是当我从批处理文件运行此命令时,没有任何反应。 我添加了timeout 以查看实际运行的命令,并且似乎我的命令在运行时自动替换为以下命令:

ECHO G 1>LPT1

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

【问题讨论】:

    标签: batch-file cmd command


    【解决方案1】:

    将插入符号从 ^ 加倍到 ^^,因为 ^ 单独是转义字符。

    【讨论】:

    • 感谢您的回复,请问如何去掉自动添加的空格和数字1?
    • 你测试了吗? 1 显示在屏幕上,但未在命令中使用。它是 STDOUT 流的标志。 (标准输出)
    【解决方案2】:

    这似乎对我有用:

    正如约瑟夫所说:

    以管理员身份运行 CMD Prompt 并键入: echo @echo(•^>COM5>c:\Drawer.bat

    将 COM5 更改为您的打印机所在的任何端口。我正在使用 STAR TSP100IIIECO USB 使用星型驱动程序提供的虚拟 com 端口。

    在记事本中打开的结果是: 回声 > COM5

    如您所见,记事本无法显示特殊字符,但成功运行 bat 会踢出抽屉。

    我知道这是一个旧线程,但希望这可以帮助某人。

    【讨论】:

      【解决方案3】:
      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 不同)。

      【讨论】:

      • 确认一下,“echo echo [ctrl+g]>>lpt1”等价于“ECHO ^G>LPT1”,但可以从.bat文件而不是CMD运行?
      • 我尝试了上面的建议但寄存器仍然没有打开,如果我打开 CMD 并输入 ECHO ^G>LPT1 它会打开但如果我尝试通过批处理文件执行相同操作,则没有任何反应.
      【解决方案4】:

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

      不幸的是,我的文本编辑器(以及notepad.exe)在按下 Ctrl+G 和另一种方法后会带来 Goto line 对话框Alt+07 advised here 错误地将 mojibakes 转换为 ASCII 0x95。这是我的解决方法:从cmd 命令行,输入

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

      其中 代表Ctrl+GAlt+07 并显示^G on监视器。

      结果:

      十六进制视图中的结果:

      【讨论】:

      • 我尝试了上面的建议但寄存器仍然没有打开,如果我打开 CMD 并输入 ECHO ^G>LPT1 它会打开但如果我尝试通过批处理文件执行相同操作,则没有任何反应.
      • @Alex type D:\bat\SO\32642290a.bat 应该显示 @echo(>LPT1 伴随着 BELL 声音。与ECHO ^G 相同的声音(不重定向到LPT 设备)。
      猜你喜欢
      • 2022-01-05
      • 1970-01-01
      • 2011-05-22
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多