# Batchen: Systemversion prüfen & autom. Systemlaufwerk benutzen



## Founder (21. Juli 2004)

Hallo zusammen!

Wie kann ich mich mit Batchprogrammierung in Pfaden automatisch auf die Systempartition beziehen, ohne den Laufwerksbuchstaben (der ja nicht immer C:\ sein muss) benutzen zu müssen?

Gibt es einen Befehl, mit dem man automatisch die Systemversion prüfen kann? Wie kann ich so etwas in eine IF-Abfrage überhaupt einbauen?


Vielen Dank für evtl. Hilfe,


Lotexx.


----------



## Retlaw (21. Juli 2004)

Die Version kannst du über das Kommandozeilenprogramm ver abfragen.
Gib in der Eingabeaufforderung mal set ein, dann siehst du alle gesetzten Variablen. Da gibts z.B. eine Namens SystemDrive oder SystemRoot, da drin findest du die Informationen die du brauchst.
Beispielzugriff auf Variablen:

```
echo wechsle auf die Systemplatte
cd %SystemDrive%
echo Betriebssystem:
ver
if "%OS%"=="Windows_NT" goto winnt
echo Das Betriebssystem ist nicht Windows NT
goto end
:winnt
echo Das Betriebssystem ist Windows NT
:end
```


----------



## Founder (21. Juli 2004)

Danke schön...

Und wie baue ich das in einen Pfad ein? Vielleicht so:

%SystemDrive%:\xyz\xyz

...?

Bei WinXP Professional scheint der CD-Befehl in Batch-Dateien nicht viel zu nutzen, kann das sein? Ich meine, der tut erst dann, was man sagt, wenn man vollständige Pfade mit Erwähnung des Laufwerksbuchstaben angibt...


----------



## squeaker (21. Juli 2004)

Systempartition steht meines wissens nur in der Registry. Es kann also sein, dass du auf eine Skriptsprache wie Perl zurückgreifen musst, oder ein Utility schreiben, welches du dann in der Batchdatei nutzt.


----------



## Retlaw (21. Juli 2004)

Zum cd Befehl:
cd ohne Parameter zeigt das aktuelle Verzeichnis an.
cd.. welchselt zum übergeordneten Verzeichnis.
cd PFAD wechselt zum angegebenen Pfad wenn du dich auf der selben Platte befindest.
cd x: wechselt zum angegebenen Laufwerk

Wenn du also nach %SystemDrive%:\xyz\xyz willst:

```
cd %SystemDrive%
cd xyz\xyz
```

Würde vorher aber prüfen ob auf deinem System die Variable überhaupt gefüllt ist


----------



## Founder (22. Juli 2004)

Ich will auch ein wenig vom CD-Befehl unabhängig sein.

Angenommen, ich will etwas von der Systempartition (deren Buchstaben ichnicht unbedingt kennen muss) auf das Laufwerk kopieren, auf dem sich die Batchdatei befindet (und die Batchdatei soll auf allen Laufwerken gleich funktionieren).

Ich bräuchte doch dann eine Befehlszeile wie:

.... copy %Systemdrive%/xyz/xyz abc/abc/   .......

Da komme ich mit dem CD-Befehl doch nicht viel weiter, oder?


----------



## Retlaw (22. Juli 2004)

Nein zum Kopieren brauchst du kein CD, aber du hast ja auch noch nicht gesagt was du vorhast, das war lediglich ein Anwendungsbeispiel.

Beispiel zum Kopieren der Datei config.sys von der Systempartition ins aktuelle Verzeichnis:

```
copy %systemdrive%\config.sys .
```
Funktioniert solange die Variable richtig gesetzt ist.
Der Punkt steht für das aktuelle Verzeichnis, kann durch relative Pfadangaben beeinflusst werden.


----------



## Founder (22. Juli 2004)

Es hat jetzt geklappt. Vielen Dank für die Ratschläge. Mein Code sieht jetzt etwa so aus:



```
IF "%OS%"=="Windows_NT" goto winnt
Rem ------------------------------------------
Rem Ab hier wird in ein Win98-Verzeichnis kopiert
mkdir %Systemdrive%\Programme\VirtKB
mkdir %Systemdrive%\Programme\VirtKB\VKB-Data
copy Datei.lnk %Systemdrive%\WINDOWS\Desktop
copy Datei.htm %Systemdrive%\Programme\VirtKB
copy Datei.htm %Systemdrive%\Programme\VirtKB
copy Datei.ico %Systemdrive%\Programme\VirtKB
GOTO weiter
:winnt
Rem ------------------------------------------
Rem Ab hier wird in ein WinXP-Verzeichnis kopiert
mkdir %Systemdrive%\Programme\Neu
mkdir %Systemdrive%\Programme\Neu\Data
copy start.htm %Systemdrive%\Programme\VirtKB
:weiter
```


Ich habe jetzt aber ein neues Problem. Ich würde gerne einen neuen Thread dafür eröffnen, weil mir das Laufwerke-Thema sehr wichtig ist.



.
.
.


----------



## MC Breit (22. Juli 2004)

Also, eines noch..

copy Datei.lnk %Systemdrive%\WINDOWS\Desktop
warum machst du nicht einfach 
copy Datei.lnk %SystemRoot%\Desktop


Und wegen dem laufwerk wechseln, es gibt bei dc einen parameter D wie DiskChange ;-)

Versuch mal
cd /D %Systemdrive%
sollte klappen, hehehe
Das /D brauchst du immer dann, wenn du das laufwerk wechseln willst..


----------



## Founder (22. Juli 2004)

Das war genau der Tipp, der voll ins Schwarze getroffen hat

Jetzt brauche ich auch keinen zweiten Thread mehr, denn ich wollte fragen, wie ich das CD-Laufwerk automatisch als Hauptpfad einsetzen könnte. Mit ein paar IF-Abfragen, der %temp%-Variable, dem SET-Befehl und dem /D-Parameter hat's geklappt


----------

