diverse Aenderungen, siehe CHANGELOG.md - v.0.1.1

This commit is contained in:
Adam Skotarczak 2025-04-19 12:19:36 +02:00
parent 6405c0c046
commit 5badc89727
10 changed files with 145 additions and 24 deletions

18
CHANGELOG.md Normal file
View File

@ -0,0 +1,18 @@
# CHANGELOG - WINSTARTSTOP
- **2025/04/19 - v.0.1.1**
- **Überarbeitet:**
- `startup.bat`
- Warteschleife integriert (prüft bis zu 60 Sekunden auf Verfügbarkeit der Ramdisk)
- Logging hinzugefügt (`ramdisk_log.txt`) mit Zeitstempeln und Statusmeldungen pro Verzeichnis
- Kommentare und Struktur des Batchskripts verbessert
- Fehlerbehandlung ergänzt (Abbruch bei nicht erreichbarer Ramdisk)
- **Dokumentiert:**
- `README.md`
- sprachlich und strukturell überarbeitet
- Installation und Verhalten der Skripte klarer beschrieben
- Hinweis auf integrierte Ramdisk-Wartezeit ergänzt
- **Erstellt:**
- MS-DOS-inspiriertes Projektlogo als PNG (schwarz-blau, Cmd-Style, RAM-Icon, Power/Shutdown-Elemente)

View File

@ -1,34 +1,84 @@
# Sammulung von Start- Shutdown Scripten
# Sammlung von Start- und Shutdown-Skripten
(C) 2025 Adam Skotarczak <adam@skotarczak.net> ([LICENZE](./LIZENSE))
![Projektlogo](./assets/logo-alpha_250x250.png)
> (C) 2025 Adam Skotarczak <adam@skotarczak.net>
> [Lizenz anzeigen](./LIZENSE)
## Inhalt:
- [Sammlung von Start- und Shutdown-Skripten](#sammlung-von-start--und-shutdown-skripten)
- [Inhalt:](#inhalt)
- [Übersicht](#übersicht)
- [Skripte](#skripte)
- [`startup.bat`](#startupbat)
- [Beispiel:](#beispiel)
- [Funktionsweise:](#funktionsweise)
- [Installation:](#installation)
- [`shutdown.bat`](#shutdownbat)
- [Installation:](#installation-1)
- [Parameter:](#parameter)
- [Hinweise](#hinweise)
## Übersicht
Dieses Repository enthält Windows-Batchskripte zur Initialisierung und Aufräumroutine bei Systemstart und -shutdown.
Ziel ist es, temporäre Ressourcen effizient zu verwalten (z.B. Ramdisk, Temp-Ordner etc.).
## Skripte
[PLATZHALTER]
### [`startup.bat`](./scripts/startup.bat)
Erstellt beim Systemstart vordefinierte Verzeichnisse auf einem beliebigen Zielpfad (z.B. Ramdisk).
#### Beispiel:
```cmd
startup.bat R:\
```
#### Funktionsweise:
- Beim ersten Start wird automatisch die Datei `dirlist.txt` im selben Verzeichnis erzeugt.
- In `dirlist.txt` werden die Verzeichnisse aufgelistet, die erstellt werden sollen.
- Die angegebene Ramdisk muss zum Zeitpunkt des Skriptaufrufs vorhanden sein.
- Es wird eine Logdatei `ramdisk_log.txt` angelegt, die alle Aktionen protokolliert.
#### Installation:
```text
gpedit.msc → Computerkonfiguration → Windows-Einstellungen → Skripts (Starten)
```
---
### [`shutdown.bat`](./scripts/shutdown.bat)
Löscht diverse tempoäre Pfade unter windows. Sollte z.B beim Shutdown eingesetzt werden:
Bereinigt temporäre Pfade unter Windows. Ideal für den Einsatz beim Herunterfahren des Systems.
#### Installation
#### Installation:
`gpedit.msc → Computerkonfiguration → Windows-Einstellungen → Skripts (Herunterfahren)`
```text
gpedit.msc → Computerkonfiguration → Windows-Einstellungen → Skripts (Herunterfahren)
```
![Screesnshot gpedit.msc](./assets/gpedit.png)
![Screenshot gpedit.msc](./assets/gpedit.png)
#### Parameter
#### Parameter:
| Aufruf | Wirkung |
|-----------------------------|------------------------------------------------------|
| `shutdown.bat` | Führe Cleanup aus, keine Logs |
| `shutdown.bat debug` | Führe Cleanup aus + logge nach shutdownbat.log |
| `shutdown.bat test` | Simuliere nur, keine Daten werden gelöscht |
| `shutdown.bat test debug` | Simuliere + logge alles |
| Aufruf | Wirkung |
|---------------------------|--------------------------------------------------|
| `shutdown.bat` | Führt Cleanup aus, ohne Logging |
| `shutdown.bat debug` | Cleanup + Logausgabe in `shutdownbat.log` |
| `shutdown.bat test` | Simulation (kein Löschen) |
| `shutdown.bat test debug` | Simulation + Logging |
### [`startup.bat`](./scripts/startup.bat)
---
Erstellt an einem beliebigen Pfad eine Verzeichnisebene.
## Hinweise
> `./startup.bat R:\`
- Die integrierte Warteschleife in `startup.bat` prüft bis zu 30 Sekunden lang, ob das angegebene Laufwerk (z.B. Ramdisk) verfügbar ist.
- Für erweiterte Steuerung kann zusätzlich der Windows-Taskplaner verwendet werden (z.B. zum verzögerten Start).
- Die Logdateien wachsen mit regelmäßige Wartung empfohlen.
Das Skript erstellt beim ersten Aufruf die Datei `dirlist.txt` in gleichen Veerzeichnis in dem sich das Skript befindet. Diese Datei kann bearbeitet und weitere Verzeichnise hinzugefügt werden. Mit erneutem Aufruf werden diese Verzeichnise erstellt.
---

View File

@ -1 +1 @@
0.1.0
0.1.1

BIN
assets/logo-alpha.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
assets/logo-dark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 KiB

BIN
assets/winstartstop.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

6
desktop.ini Normal file
View File

@ -0,0 +1,6 @@
[.ShellClassInfo]
IconResource=.\assets\winstartstop.ico,0
[ViewState]
Mode=
Vid=
FolderType=Documents

16
scripts/ramdisk_log.txt Normal file
View File

@ -0,0 +1,16 @@
[2025-04-19_10:56:58] Ramdisk R:\ wurde gefunden.
[2025-04-19_10:56:58] Bereits vorhanden: R:\Temp
[2025-04-19_10:56:58] Bereits vorhanden: R:\ChromeProfile
[2025-04-19_10:56:58] Bereits vorhanden: R:\ChromeCache
[2025-04-19_10:56:58] Bereits vorhanden: R:\Downloads
[2025-04-19_10:56:58] Bereits vorhanden: R:\Arbeitsverzeichnis
[2025-04-19_10:56:58] Bereits vorhanden: R:\BraveCache-Ascot
[2025-04-19_10:56:58] Verzeichniserstellung abgeschlossen.
[2025-04-19_11:01:31] Ramdisk R:\ wurde gefunden.
[2025-04-19_11:01:31] Erstellt: R:\Temp
[2025-04-19_11:01:31] Erstellt: R:\ChromeProfile
[2025-04-19_11:01:31] Erstellt: R:\ChromeCache
[2025-04-19_11:01:31] Erstellt: R:\Downloads
[2025-04-19_11:01:31] Erstellt: R:\Arbeitsverzeichnis
[2025-04-19_11:01:31] Erstellt: R:\BraveCache-Ascot
[2025-04-19_11:01:31] Verzeichniserstellung abgeschlossen.

View File

@ -4,11 +4,18 @@ setlocal enabledelayedexpansion
::
:: (C) Adam Skotarczak 2025
:: Erstellt Ramdisk-Verzeichnisse Pfad als Parameter übergeben
:: Mit Warte-Logik und Logging
::
:: --- Konfiguration: Verzeichnisliste ---
:: (Kommentare mit :: möglich, Leerzeilen erlaubt)
:: --- Konfiguration ---
set "DIRS_FILE=%~dp0dirlist.txt"
set "LOGFILE=%~dp0ramdisk_log.txt"
:: --- Hilfsfunktion: Zeitstempel ---
for /f %%T in ('powershell -nologo -command "Get-Date -Format yyyy-MM-dd_HH:mm:ss"') do set "TIMESTAMP=%%T"
:: --- Logging-Funktion ---
set "LOGENTRY=[%TIMESTAMP%]"
:: Wenn dirlist.txt nicht existiert, erzeugen
if not exist "%DIRS_FILE%" (
@ -20,11 +27,12 @@ if not exist "%DIRS_FILE%" (
echo Downloads
echo Arbeitsverzeichnis
)
echo %LOGENTRY% Datei dirlist.txt wurde erzeugt. Inhalt ggf. anpassen und erneut ausfuehren.>>"%LOGFILE%"
echo Datei dirlist.txt wurde erzeugt. Inhalt ggf. anpassen und erneut ausfuehren.
goto :eof
)
:: --- Hilfe anzeigen, wenn kein Parameter übergeben wird ---
:: --- Hilfe anzeigen ---
if "%~1"=="" (
echo.
echo Syntax: %~nx0 [Laufwerkspfad]
@ -37,17 +45,40 @@ if "%~1"=="" (
goto :eof
)
:: --- Zielpfad aus Parameter setzen ---
:: --- Zielpfad setzen ---
set "RAMDISK=%~1"
if not "%RAMDISK:~-1%"=="\" set "RAMDISK=%RAMDISK%\"
:: --- Auf Ramdisk warten (max. 30 Sekunden) ---
set "WAIT=0"
:waitloop
if exist "%RAMDISK%." goto :continue
timeout /t 1 >nul
set /a WAIT+=1
if %WAIT% GEQ 60 (
echo %LOGENTRY% [FEHLER] Ramdisk %RAMDISK% nicht gefunden Abbruch.>>"%LOGFILE%"
echo [FEHLER] Ramdisk %RAMDISK% nicht gefunden Abbruch.
goto :eof
)
goto waitloop
:continue
echo %LOGENTRY% Ramdisk %RAMDISK% wurde gefunden.>>"%LOGFILE%"
:: --- Verzeichnisse erstellen ---
for /f "usebackq tokens=*" %%D in ("%DIRS_FILE%") do (
set "LINE=%%D"
if not "!LINE!"=="" if "!LINE:~0,2!" NEQ "::" (
if not exist "%RAMDISK%!LINE!" mkdir "%RAMDISK%!LINE!"
set "TARGET=%RAMDISK%!LINE!"
if not exist "!TARGET!" (
mkdir "!TARGET!"
echo %LOGENTRY% Erstellt: !TARGET!>>"%LOGFILE%"
) else (
echo %LOGENTRY% Bereits vorhanden: !TARGET!>>"%LOGFILE%"
)
)
)
echo Verzeichnisse in %RAMDISK% wurden erstellt.
echo %LOGENTRY% Verzeichniserstellung abgeschlossen.>>"%LOGFILE%"
endlocal