Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Befehl fsutil behavior query disabledeletenotify in Batch-Datei weiterverarbeiten

Frage Entwicklung Batch & Shell

Mitglied: Moricool

Moricool (Level 1) - Jetzt verbinden

01.05.2014 um 23:18 Uhr, 2951 Aufrufe, 4 Kommentare

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:

01.
@echo off 
02.
chcp 1252 
03.
echo "Trim" aktivieren oder aktivität testen 
04.
 
05.
for /f "tokens=*" %%i in ('fsutil behavior query disabledeletenotify ') do set Adresse=%%i 
06.
 
07.
if %Adresse%==DisableDeleteNotify = 0 goto aktiviert  
08.
 
09.
else goto Deaktiviert  
10.
 
11.
   
12.
:aktivert 
13.
echo Trim ist aktiviert 
14.
pause 
15.
exit 
16.
 
17.
:Deaktiviert 
18.
echo Trim ist deaktiviert. Soll es nun aktiviert werden? (y/n) 
19.
set x= 
20.
 
21.
if %x%==y 
22.
fsutil behavior set DisableDeleteNotify 0 
23.
echo TRIM wurde aktivier! 
24.
pause 
25.
exit 
26.
 
27.
if %x%==n 
28.
exit

Ich hoffe, das ist jetzt nicht alles murx gewesen und jemand kann mir helfen.
MfG, Marcus
Mitglied: rubberman
02.05.2014, aktualisiert um 00:12 Uhr
Hallo Moricool, willkommen im Forum.

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
Auf diese Weise erzeugst du eine Variable %DisableDeleteNotify% mit dem entsprechenden Wert.

Ungetestet also etwa so:
01.
@echo off &setlocal 
02.
for /f "delims=" %%i in ('fsutil behavior query disabledeletenotify') do set /a %%i 
03.
 
04.
if %DisableDeleteNotify%==0 ( 
05.
  echo Trim ist aktiviert 
06.
  pause 
07.
  goto :eof 
08.
09.
 
10.
set /p "x=Trim ist deaktiviert. Soll es nun aktiviert werden? (y/n) " 
11.
if /i "%x%"=="y" ( 
12.
  fsutil behavior set DisableDeleteNotify 0 
13.
  echo Trim wurde aktiviert. 
14.
  pause 
15.
)
Grüße
rubberman
Bitte warten ..
Mitglied: colinardo
02.05.2014, aktualisiert um 10:57 Uhr
Hallo Marcus, Welcome.
Das hatte ich auch schon mal hier gepostet:
http://www.administrator.de/contentid/226749#comment-896292
Vielleicht findest du für die anderen Bestandteile des Scripts auch Verwendung

Grüße Uwe
Bitte warten ..
Mitglied: Moricool
02.05.2014 um 12:47 Uhr
Hallo,

Vielen Dank euch beiden für die Schnelle Hilfe!
Aha, wieder was gelernt, sehr nützlich

Ich habe jetzt angefangen, mir eine Batch Datei zu erstellen, in der ich zwischen verschiedenen Funktionen wählen kann. Die werde ich jetzt kontinuierlich erweitern.

@colinardo:

Genau diese Funktionen habe ich auch alle umschalten wollen! perfekt.
Nur habe ich jetzt bezüglich der Prefetch und Superprefetch gelesen, dass sie, wenn man noch eine normale HDD nutzt, auf welcher Programme installiert sind, besser aktiviert bleiben sollten.

Ist es möglich via CMD zu identifizieren, ob es sich um eine SSD handelt oder nicht?

Danke schonmal im Voraus,
Marcus
Bitte warten ..
Mitglied: colinardo
02.05.2014, aktualisiert um 13:27 Uhr
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:
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...