Befehl fsutil behavior query disabledeletenotify in Batch-Datei weiterverarbeiten
Hallo,
schonmal im Voraus, ich bin ein Anfänger, was Batch Datein angeht.
Da ich gerne am tüftle, sammle ich gerne nützliche Befehle, um sie später, wenn ich das selbe Problem mal haben sollte, wieder anwenden kann.
Heute habe ich wegen meiner SSD mal ein wenig herumgeschaut und bin auf den Befehl zum Aktivieren von TRIM gekommen. Meine Idee war es nun eine Batch Datei zu schreiben, die "fsutil behavior query disabledeletenotify" ausführt. Wenn Trim aktiviert ist, sollte es das sagen und sich beenden. Andernfalls soll es fragen, ob TRIM aktivert werden soll und dies bei Zustimmung tun.
Meine Fragen/Probleme:
1. Leider hakt es bei der Verarbeitung der Ausgabe, die ich in einer Variable gespeichert habe (Für Kenner wohl nicht weiter verunderlich, nehme ich an).
Wenn ich "fsutil behavior query disabledeletenotify" eingebe kommt als Ausgabe ja DisableDeleteNotify = X heraus. Ansich will ich natürlich nur den Wert X weiter verwenden, das bekomme ich jedoch nicht hin, daher wollte ich mit der ganzen Zeile weiter arbeiten. Das funktionier jedoch nicht.
2. Ich habe die Zeile "for /f "tokens=*" %%i in ('fsutil behavior query disabledeletenotify ') do set Adresse=%%i" teils übernommen. Nun habe ich die Frage, wozu dieses tokens=* genau da ist.
Hier mein "kläglicher" Anfang:
Ich hoffe, das ist jetzt nicht alles murx gewesen und jemand kann mir helfen.
MfG, Marcus
schonmal im Voraus, ich bin ein Anfänger, was Batch Datein angeht.
Da ich gerne am tüftle, sammle ich gerne nützliche Befehle, um sie später, wenn ich das selbe Problem mal haben sollte, wieder anwenden kann.
Heute habe ich wegen meiner SSD mal ein wenig herumgeschaut und bin auf den Befehl zum Aktivieren von TRIM gekommen. Meine Idee war es nun eine Batch Datei zu schreiben, die "fsutil behavior query disabledeletenotify" ausführt. Wenn Trim aktiviert ist, sollte es das sagen und sich beenden. Andernfalls soll es fragen, ob TRIM aktivert werden soll und dies bei Zustimmung tun.
Meine Fragen/Probleme:
1. Leider hakt es bei der Verarbeitung der Ausgabe, die ich in einer Variable gespeichert habe (Für Kenner wohl nicht weiter verunderlich, nehme ich an).
Wenn ich "fsutil behavior query disabledeletenotify" eingebe kommt als Ausgabe ja DisableDeleteNotify = X heraus. Ansich will ich natürlich nur den Wert X weiter verwenden, das bekomme ich jedoch nicht hin, daher wollte ich mit der ganzen Zeile weiter arbeiten. Das funktionier jedoch nicht.
2. Ich habe die Zeile "for /f "tokens=*" %%i in ('fsutil behavior query disabledeletenotify ') do set Adresse=%%i" teils übernommen. Nun habe ich die Frage, wozu dieses tokens=* genau da ist.
Hier mein "kläglicher" Anfang:
@echo off
chcp 1252
echo "Trim" aktivieren oder aktivität testen
for /f "tokens=*" %%i in ('fsutil behavior query disabledeletenotify ') do set Adresse=%%i
if %Adresse%==DisableDeleteNotify = 0 goto aktiviert
else goto Deaktiviert
:aktivert
echo Trim ist aktiviert
pause
exit
:Deaktiviert
echo Trim ist deaktiviert. Soll es nun aktiviert werden? (y/n)
set x=
if %x%==y
fsutil behavior set DisableDeleteNotify 0
echo TRIM wurde aktivier!
pause
exit
if %x%==n
exit
Ich hoffe, das ist jetzt nicht alles murx gewesen und jemand kann mir helfen.
MfG, Marcus
Please also mark the comments that contributed to the solution of the article
Content-Key: 236989
Url: https://administrator.de/contentid/236989
Printed on: April 26, 2024 at 13:04 o'clock
4 Comments
Latest comment
Hallo Moricool, willkommen im Forum.
Mit Hilfe von delims und tokens kann man den verarbeiteten Stream in Teilstrings aufteilen. Standard Trennzeichen (Delimiter) sind Leerzeichen und Tab. Tokens gibt an welche Teilstrings in die FOR Variablen wandern sollen. "tokens=*" ist vereinfacht gesagt eine Möglichkeit die ganze Zeile in die Variable zu packen (wobei hier ein "delims=" die bessere Wahl ist, aber so detailliert will ich jetzt nicht werden).
Um an deinen Wert zu kommen könntest du also mit
Du kannst auch noch etwas anders vorgehen:
Auf diese Weise erzeugst du eine Variable %DisableDeleteNotify% mit dem entsprechenden Wert.
Ungetestet also etwa so:
Grüße
rubberman
Ich habe die Zeile "for /f "tokens=*" %%i in ('fsutil behavior query disabledeletenotify ') do set Adresse=%%i" teils übernommen. Nun habe ich die Frage, wozu dieses tokens=* genau da ist.
Mit Hilfe von delims und tokens kann man den verarbeiteten Stream in Teilstrings aufteilen. Standard Trennzeichen (Delimiter) sind Leerzeichen und Tab. Tokens gibt an welche Teilstrings in die FOR Variablen wandern sollen. "tokens=*" ist vereinfacht gesagt eine Möglichkeit die ganze Zeile in die Variable zu packen (wobei hier ein "delims=" die bessere Wahl ist, aber so detailliert will ich jetzt nicht werden).
Um an deinen Wert zu kommen könntest du also mit
"tokens=2 delims== "
arbeiten. Delimiter sind dann = und Leerzeichen. Aufeinanderfolgende Delimiter werden wie ein einziger betrachtet, somit steht dein Wert im 2. Teilstring (also tokens=2).Du kannst auch noch etwas anders vorgehen:
for /f "delims=" %%i in ('fsutil behavior query disabledeletenotify') do set /a %%i
Ungetestet also etwa so:
@echo off &setlocal
for /f "delims=" %%i in ('fsutil behavior query disabledeletenotify') do set /a %%i
if %DisableDeleteNotify%==0 (
echo Trim ist aktiviert
pause
goto :eof
)
set /p "x=Trim ist deaktiviert. Soll es nun aktiviert werden? (y/n) "
if /i "%x%"=="y" (
fsutil behavior set DisableDeleteNotify 0
echo Trim wurde aktiviert.
pause
)
Grüße
rubberman
Hallo Marcus, Welcome.
Das hatte ich auch schon mal hier gepostet:
Festplatte klonen auf SSD
Vielleicht findest du für die anderen Bestandteile des Scripts auch Verwendung
Grüße Uwe
Das hatte ich auch schon mal hier gepostet:
Festplatte klonen auf SSD
Vielleicht findest du für die anderen Bestandteile des Scripts auch Verwendung
Grüße Uwe
Zitat von @Moricool:
Ist es möglich via CMD zu identifizieren, ob es sich um eine SSD handelt oder nicht?
kleines Autoit Skript zur EXE kompiliert, feddich:Ist es möglich via CMD zu identifizieren, ob es sich um eine SSD handelt oder nicht?
http://www.autoitconsulting.com/site/scripting/detect-an-ssd-disk-using ...
Man könnte zwar auch via wmic diskdrive die Caption eines Laufwerks auf das vorhanden sein des Wortes SSD prüfen, jedoch ist das alles andere als sicher, denn nicht jeder Hersteller baut in die Bezeichnung des Laufwerks diesen Begriff mit ein.
Grüße Uwe