我试图用分号前缀行,“REM”等。但无论怎样,当我跑我的批处理文件,我不断收到愚蠢的批处理文件行为。试图执行意见
回答
“REM测试”它不被认可,它是Windows Vista。我只需将“rem”输出回到我的控制台。
这是完全正常的行为。批处理文件只是一个接一个地运行的命令序列。所以每行都会输出到控制台,就好像它在那里输入一样。
H:\>echo rem test > test.cmd
H:\>test
产生输出
H:\>rem test
仿佛我输入rem test
直接到控制台。通过包括echo off
批处理文件
@rem test
或::如果我把 “::测试”
@echo off
rem test
和
您可以通过添加前缀符合
@
抑制这种执行它我回来“测试”。
此处不能复制。
如果我把“测试”,它递归执行本身
在该行的开始似乎被忽略了一个分号。
不,它是cmd.exe – 2009-11-28 15:12:35
就是这样!听起来也很熟悉。 – 2009-11-30 08:53:11
如果你在谈论“什么未知的命令REM” Windows下cmd.exe
批处理文件,你可以使用:
rem this method or
:: this method.
对于bash
和许多其他UNIX型壳,你使用:
# this method.
我你不使用某些漂亮cmd.exe
因为这将让你像一个错误:
'rem' is not recognized as an internal or external command,
operable program or batch file.
而不是:
Unknown command ...
如果你是使用UNIX型外壳,#
人物几乎可以肯定是你追求。如果你让我们知道你正在使用的shell,我们可以进一步提供帮助。
请记住,'::'有时会在块内产生意想不到的结果。我看到了有关未知驱动器的奇怪的错误消息,但无法在最新版本的Windows上重新创建它们。 – Joey 2009-11-27 08:33:39
我还没有看到任何问题,但后来我不写*巨大的*批处理文件。他们大多倾向于在块之前发表评论以解释发生了什么,并且在将块的内容重构为调用语句之前,我的块没有变大。 – paxdiablo 2009-11-27 09:28:03
它的cmd.exe,标准的windows shell。 我把“REM测试”(不带引号)放到一个名为test.bat的文件中,导航到它并输入“test”,然后按回车键(在cmd.exe中),我将REM输出到我的控制台,没有别的。 – 2009-11-28 15:13:24
你可能创建了一个UNICODE文件。这些文件包含名为BOM 的2字节标题,它不会被任何编辑器显示,但cmd会尝试执行它们并失败。
为了确保这的确是一个问题:在你文件的最开始 键入任何其他命令,看看它抛出了同样的错误 - 例如@echo测试
要解决它,只需创建一个新的纯文本文件和复制原始文件的内容。 然后删除原始文件并将其替换为新创建的文件。
- 1. 批处理文件执行
- 2. 批处理文件意外行为
- 3. 批处理文件,使另一个批处理文件执行
- 4. 执行的Windows批处理文件
- 5. 的MSBuild PSEXEC执行批处理文件
- 6. 多维数组的愚蠢行为
- 7. 执行批处理文件时出错
- 8. 批处理文件未从php执行
- 9. 在php中执行批处理文件
- 10. 在前台执行批处理文件
- 11. 远程执行批处理文件java
- 12. 非阻塞批处理文件执行
- 13. 窗体执行批处理文件
- 14. 批处理文件未完全执行
- 15. 在c#中执行批处理文件
- 16. 在C#中执行批处理文件#
- 17. 执行多个批处理文件c#
- 18. Windows批处理文件执行日志
- 19. 批处理文件执行ASP经典
- 20. 执行一个批处理文件
- 21. CreateProcess执行批处理文件
- 22. 执行批处理文件默默
- 23. 批处理文件执行Powershell脚本
- 24. 在批处理文件中执行httprequest
- 25. 从批处理文件中执行.exe
- 26. QT批处理文件未执行。
- 27. 从C#执行批处理文件#
- 28. IO.StreamReader(文件名)愚蠢
- 29. 将目录和批处理文件合并为一行执行
- 30. 试图将批处理文件作为Windows服务运行
也许有些代码? – Joey 2009-11-27 08:29:27
请详细说明您的环境。 'REM'被Windows XP命令行界面(cmd)识别,但显然你使用的是不同的东西。 – 2009-11-27 08:30:31
没有太多的代码要给。 “REM测试” 不被认可,是windows vista。我只需将“rem”输出回到我的控制台。 如果我把“::测试”并执行它,我回到“测试”。 如果我把“;测试”递归执行自己 – 2009-11-28 15:14:41