我試圖用分號前綴行,「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