2012-03-15 27 views
4

バッチファイル内でコマンド履歴を無効にすることはできますか?Windowsバッチファイルのコマンド履歴を無効にする

my.batを呼び出した後、SET /Pなどの呼び出しの結果が履歴にプッシュされます。だから私は、マシン名を入力するように私のユーザーに依頼すると、履歴は、そのマシン名も含まれています。

P:> my.bat

P:

プロンプトmyenv:> SET/P MYENVは= "プロンプトmyenv":

P lskdjf:>

P lskdjf :>

DOSKEYには、一時停止または無効にする方法がないようです履歴スタック。

答えて

8

短い答え

doskey /reinstall 

これは完全な履歴を消去します。

2番目の方法では、バッチ内で新しい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

2番目のビットが鮮やかです。なぜ私の.batファイルを呼び出す前から履歴を破壊するのですか? – hometoast

+0

自分自身とgotoを呼び出すのではなく、単に 'call:historySafe'を行うべきでしょうか? – quantum

+0

@xiaomao:ちょうど呼び出して:historySafeそれは動作しません。トリックは、新しいcmd-contextを作成することです – jeb

関連する問題