Inhalt von doskey history in for f Schleife bearbeiten
Hallo,
ich möchte die Ausgabe von doskey /h in einer Variable speichern um den Inhalt zu bearbeiten. In dieser Ausgabe sind Passwörter enthalten also kommt eine Zwischenspeicherung in einer Datei nicht in Frage.
Ich versuche also folgendes:
Hier soll dann eine Filterung stattfinden aber die Schleife wird überhaupt nicht durchlaufen. Wie kann ich die Ausgabe von doskey in eine Variable umleiten?
Auch möchte ich wissen wie man den doskey Speicher löschen kann. Zum löschen habe ich doskey.exe /listsize=0 gefunden, was aber genau macht doskey.exe /reinstall? Nach Anwendung des Befehles funktioniert er nicht mehr.
Gruß,
ich möchte die Ausgabe von doskey /h in einer Variable speichern um den Inhalt zu bearbeiten. In dieser Ausgabe sind Passwörter enthalten also kommt eine Zwischenspeicherung in einer Datei nicht in Frage.
Ich versuche also folgendes:
FOR /f "TOKENS=1,2,3 delims= " %%i IN ('doskey /h') DO (
ECHO test %%i %%j %%k
)
Hier soll dann eine Filterung stattfinden aber die Schleife wird überhaupt nicht durchlaufen. Wie kann ich die Ausgabe von doskey in eine Variable umleiten?
Auch möchte ich wissen wie man den doskey Speicher löschen kann. Zum löschen habe ich doskey.exe /listsize=0 gefunden, was aber genau macht doskey.exe /reinstall? Nach Anwendung des Befehles funktioniert er nicht mehr.
Gruß,
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 667033
Url: https://administrator.de/contentid/667033
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo anmelder,
was die Parameter
Zumindest ist das auf meinem Rechner so.
Windows 10 Pro 64-bit (de-DE) 21H1 [10.0.19043.985]
Die Befehle
sind ohne Auswirkung auf die Liste.
Der Befehle
schließt die Eingabeaufforderung, in der ich ihn eingebe.
Die Dokumentation lässt ein anderes Verhalten erwarten.
https://docs.microsoft.com/de-de/windows-server/administration/windows-c ...
Ersetze ich in Deinem Code
Deine For-Schleife scheint also zu funktionieren.
Mit Hilfsdatei funktioniert auch
Die Befehlshistory ist nur für die aktuelle Instanz von cmd gültig.
Wenn Du die Befehlshistory löschen willst, kannst Du einfach eine neue Instanz von cmd starten.
Das geht auch innerhalb des Fensters der aktuellen Eingabeaufforderung und auch per Batch mittels
Das resettet natürlich auch alles andere der Eingabeaufforderung wie z.B. Umgebungsvariablen.
Wenn Du wirklich nur die Befehls-History löschen willst, müsstest Du [Alt]+[F7] drücken
z.B. via AutoHotkey.
Ich weiß nicht so genau was Du eigentlich vor hast.
Eventuell ist eine Lösung mit
möglich, statt mit
Gruß Frank
was die Parameter
listsize
und reinstall
angeht ist doskey
scheinbar buggy.Zumindest ist das auf meinem Rechner so.
Windows 10 Pro 64-bit (de-DE) 21H1 [10.0.19043.985]
Die Befehle
doskey.exe /listsize=0
doskey.exe /listsize=10
sind ohne Auswirkung auf die Liste.
Der Befehle
doskey.exe /reinstall
schließt die Eingabeaufforderung, in der ich ihn eingebe.
Die Dokumentation lässt ein anderes Verhalten erwarten.
https://docs.microsoft.com/de-de/windows-server/administration/windows-c ...
Ersetze ich in Deinem Code
/h
durch /?
erfolgt eine AusgabeFOR /f "TOKENS=1,2,3 delims= " %%i IN ('doskey /?') DO (
ECHO test %%i %%j %%k
)
Mit Hilfsdatei funktioniert auch
/h
.doskey /h> doskey.txt
FOR /f "TOKENS=1,2,3 delims= " %%i IN ('type doskey.txt') DO (
ECHO test %%i %%j %%k
)
del doskey.txt
doskey /h
scheint also gegenüber einer For-Schleife nicht gesprächig zu sein.Die Befehlshistory ist nur für die aktuelle Instanz von cmd gültig.
Wenn Du die Befehlshistory löschen willst, kannst Du einfach eine neue Instanz von cmd starten.
Das geht auch innerhalb des Fensters der aktuellen Eingabeaufforderung und auch per Batch mittels
cmd /k
Das resettet natürlich auch alles andere der Eingabeaufforderung wie z.B. Umgebungsvariablen.
Wenn Du wirklich nur die Befehls-History löschen willst, müsstest Du [Alt]+[F7] drücken
z.B. via AutoHotkey.
Ich weiß nicht so genau was Du eigentlich vor hast.
Eventuell ist eine Lösung mit
set /p variable=
möglich, statt mit
doskey /h
Gruß Frank
moin anmelder,
Du kannst es umgehen, indem doskey ausserhalb der Forschleife arbeitet, da eine Forschleife eine zusätzliche Instanz der CDM öffnet.
Da die Pipe aber auch eine zusätzliche Instanz öffnet, lässt sich der wert nicht setzen.
Du kannst es umgehen, indem doskey ausserhalb der Forschleife arbeitet, da eine Forschleife eine zusätzliche Instanz der CDM öffnet.
Da die Pipe aber auch eine zusätzliche Instanz öffnet, lässt sich der wert nicht setzen.
doskey /h |find /v "" |for /f "delims=" %? in ('find /v "doskey"') do @echo %?