Ich schreibe gerade einen Performance-Assistenten in Batch, geschrieben, so dass die Menschen jeden Tag lesen und bearbeiten können. Meine Frage ist, ist es möglich, Batch-Code zu optimieren, ohne die Lesbarkeit zu beeinträchtigen? Hier ist ein kleiner Ausschnitt von dem, was ich habe:Batch-Lesbarkeit ohne Kompromisse bei der Ausführung mit Variablen
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
if "%version%" == "10.0" SET WinX10=1
if "%version%" == "6.3" SET WinX81=1
if "%version%" == "6.2" SET WinX80=1
if "%version%" == "6.1" SET WinX7=1
if "%version%" == "6.0" SET WinXVista=1
if "%version%" == "5.2" SET WinXXP64=1
if "%version%" == "5.1" SET WinXXP32=1
goto OSScanFinder
rem Scans your OS for version specific files, required for Extreme, Gaming, and Boot
:OSScanFinder
if defined WinX10 goto BootCleanWindows10Latest
if defined WinX81 goto BootCleanWindows81
if defined WinX80 goto BootCleanWindows80
if defined WinX7 goto BootCleanWindowsSeven
if defined WinXVista goto BootCleanVista
if defined WinXXP64 goto BootCleanXP64
if defined WinXXP32 goto BootCleanXP32
@echo Couldn't find your Operating System.
@echo I don't support Win2000, Windows Server 2003/R2/2008/R2/2012/R2
@echo Try running as administrator. If that doesn't work, please contact me at the address provided inside of the .bat file.
pause
exit
Und
rem Chrome
if exist "C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe" SET ChromeYes=Defined
rem uTorrent
if exist "%userprofile%\Downloads\utorrent.exe" SET uTorrentYes=Defined
if defined ChromeYes TASKKILL /im Chrome.exe /f
if defined uTorrentYes TASKKILL /im utorrent.exe /f
Ich bin nicht für jemanden fragen, meinen Code zu optimieren, nur wenn etwas besser geschrieben werden könnte, oder wenn es eine ist bessere Alternative zur Verwendung von "IF DEFINED" und "SET" bei gleichbleibender Lesbarkeit.
FWIW, Der beste Weg, lesbaren Code zu bekommen, ist eine modernere zu verwenden Sprache (PowerShell, VBS, Bash, C#). Batch und Lesbarkeit gehen wirklich nicht gut zusammen. Wenn alles andere gleich ist, ist Ihr Code ziemlich klar. –
Dieser Beitrag könnte besser für [CodeReview] (http://codereview.stackexchange.com/) geeignet sein, vorausgesetzt das Skript funktioniert ... – aschipfl
Es funktioniert (Es gibt viel mehr als nur die Schnipsel), aber es ist nicht bereit für die vollständige Überprüfung noch. Ich werde es höchstwahrscheinlich dort posten, sobald es fertig ist, aber ich füge immer noch viel zum Skript hinzu, und die Arbeit mit 7 verschiedenen Betriebssystemen braucht etwas Zeit. –