如何從批次檔中隱藏Windows 10提示字元中的指令?

如何從批次檔中隱藏Windows 10提示字元中的指令?

我想隱藏從批次檔開啟的提示中的命令。例子:

通常是這樣的:

正常提示

這就是我想要的樣子:

使用畫圖編輯的正常提示

如果有一種方法可以輸出所有內容,那就太好了(除了命令) 到文字檔。我使用了重定向運算子(Time_Dif.bat > Time_Dif_Log.txt)但它寫的命令就像提示(正如預期的那樣)。

我進行了搜索,發現了很多關於如何隱藏批次中的整個提示或如何防止提示在批處理文件末尾自動關閉的問題,但我只想隱藏命令。

批次檔:

set startTimeTwo=%time%
javac myPi_Two.java
java myPi_Two
set finishTimeTwo=%time%

set startTimeFour=%time%
javac myPi_Four.java
java myPi_Four
set finishTimeFour=%time%

set startTimeTen=%time%
javac myPi_Ten.java
java myPi_Ten
set finishTimeTen=%time%

echo myPi_Two: %startTimeTwo% %finishTimeTwo%
echo myPi_Four: %startTimeFour% %finishTimeFour%
echo myPi_Ten: %startTimeTen% %finishTimeTen%

pause

答案1

在尋找使用重定向運算子的其他問題時,我發現只需關閉“回顯”即可解決問題。

只需打開提示並寫入:

echo off

之後,在正確的資料夾中從相同的提示執行批次檔:

Time_Dif.bat

或將結果輸出到文字檔:

Time_Dif.bat > Time_Dif_Log.txt

之後,它將不會在提示符號或外部文字檔案中顯示命令。例子:

正常提示

編輯(來自@Kyle A的回答,@JUIICED_IT的評論和技術網):

可以將其放入@echo off批次檔的開頭,以便您可以直接從檔案總管打開,而無需在提示中顯示命令。我的最終文件:

@echo off

set startTimeTwo=%time%
javac myPi_Two.java
java myPi_Two
set finishTimeTwo=%time%

set startTimeFour=%time%
javac myPi_Four.java
java myPi_Four
set finishTimeFour=%time%

set startTimeTen=%time%
javac myPi_Ten.java
java myPi_Ten
set finishTimeTen=%time%

echo.
echo myPi_Two: %startTimeTwo% %finishTimeTwo%
echo myPi_Four: %startTimeFour% %finishTimeFour%
echo myPi_Ten: %startTimeTen% %finishTimeTen%

pause

echo.還添加了創建一個空行,只是為了組織輸出。修改後提示:

批次檔提示

答案2

使用迴音命令(@echo 關閉)。

答案3

添加在您之前cls之後echo off程式碼防止命令提示字元顯示類似以下內容:C:\Users\user>echo off

相關內容