我想隐藏从批处理文件打开的提示中的命令。示例:
正常情况下是这样的:
我想要的效果如下:
如果有一种方法可以输出所有内容那就太好了(除了命令) 到文本文件。我使用了重定向运算符 (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 的回答、@JUICED_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 off)。
答案3
在您cls
的echo off
代码以防止命令提示符显示类似以下内容:C:\Users\user>echo off