2012-03-15 79 views
4

是否可以在批处理文件中禁用命令历史记录?在Windows批处理文件中禁用命令历史记录

调用my.bat之后,调用类似SET /P之类的结果被推入历史记录。因此,如果我要求用户输入机器名称,则历史记录现在也包含该机器名称。

,P:> my.bat

,P:> SET/P MYENV = “myenv提示:”

myenv提示:lskdjf

,P:> lskdjf

P :>

DOSKEY似乎没有办法暂停或禁用推送到历史堆栈。

回答

8

简短的回答

doskey /reinstall 

这将删除完整的历史。

的第二种方式也可以开始在批一个新的CMD.EXE的实例,这只会删除set/p语句成为历史。

@echo off 
if "%~1"==":historySafe" goto :historySafe 
cmd /c "%~f0" :historySafe 
exit /b 

:historySafe 
set /p var=Password 
echo %var% 
exit /b 
+0

那第二点是辉煌的。为什么要在调用我的.bat文件之前销毁历史记录。 – hometoast 2012-03-15 17:26:35

+0

可能是你应该做'call:historySafe'而不是自己调用并且转到? – quantum 2012-03-16 03:47:22

+0

@xiaomao:只需调用:historySafe就行不通了。诀窍是创建一个新的cmd上下文 – jeb 2012-03-16 06:54:22