禁用Windows批处理文件中的命令历史记录

hom*_*ast 6 windows command-line cmd batch-file

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

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

病人:> my.bat

P:> SET/P MYENV ="myenv提示:"

myenv提示:lskdjf

病人:> lskdjf

病人:>

DOSKEY似乎没有办法暂停或禁用推入历史堆栈.

jeb*_*jeb 10

简短的回答

doskey /reinstall
Run Code Online (Sandbox Code Playgroud)

这抹去了完整的历史.

第二种方法也可以在批处理中启动新的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
Run Code Online (Sandbox Code Playgroud)