Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
os:windows:batch [2011-02-09 17:01] – root | os:windows:batch [2014-12-18 20:08] – external edit 127.0.0.1 |
---|
| |
Der Ablauf: | Der Ablauf: |
* call wird ausgeführt, zu Sprungpunkt :r | - call wird ausgeführt, zu Sprungpunkt :r |
* :r liest wert von Tastatur ein uns speichert ihn in in die Variable "read". | - :r liest wert von Tastatur ein uns speichert ihn in in die Variable "read". |
* :r wird beendet mit goto:eof | - :r wird beendet mit goto:eof |
| - call wird ausgeführt, zu Sprungpunkt :p, übergeben wird die Variable read |
* call wird ausgeführt, zu Sprungpunkt :p, übergeben wird die Variable read | - das erste Argument, welche dem Sprungpunkt über die Call-Funktion mitgegeben wird, wird ausgegeben |
* das erste Argument, welche dem Sprungpunkt über die Call-Funktion mitgegeben wird, wird ausgegeben | - :p wird beendet mit goto:eof |
* :p wird beendet mit goto:eof | - pause wird ausgeführt |
| - batch-file wird beendet |
* pause wird ausgeführt | |
| |
* batch-file wird beendet | |
| |
Skelett: | |
| |
@echo off | |
| |
call :function1 | |
call :function2 argument1 argument2 | |
goto:eof | |
| |
| |
:function1 | |
| |
goto:eof | |
| |
| |
:function2 | |
| |
goto:eof | |
| |
==== Beispiele ==== | ==== Beispiele ==== |
| |
call:ExecPSQL "SELECT COUNT(procpid) FROM pg_stat_activity" | call:ExecPSQL "SELECT COUNT(procpid) FROM pg_stat_activity" |
| </code> |
| |
| ===== Tipps ===== |
| |
| == Zugriff auf externe Tools == |
| Wird in einem Batch-File ein externes Tool verwendet, muss dieses - sofern nicht über die PATH-Variable erreichbar - über den direkten Pfad aufgerufen werden. |
| Es gibt verschiedene Gründe, warum das Anpassen der PATH-Variable bevorzugt werden sollte.32-Bit-Software, welche sich in das ProgramFiles-Verzeichnis installiert, liegt bei 32-Bit-Systemen unter //C:\Program Files// und bei 64-Bit-Systemen unter //C:\Program Files (x86)//. Fügt man nun beide Pfade - auch wenn das eine Verzeichnis existiert - der Variable hinzu, entfällt das Auswerten der OS-Architektur. |
| |
| wzzip.exe (WinZIP CLI): |
| <code> |
| where wzzip.exe >nul 2>&1 || set PATH=%PATH%;C:\Program Files (x86)\Winzip;C:\Program Files\Winzip |
| </code> |
| |
| pg_dump.exe (PostgreSQL Dump): |
| <code> |
| where pg_dump.exe >nul 2>&1 || set PATH=%PATH%;C:\Program Files (x86)\PostgreSQL\bin;C:\Program Files\PostgreSQL\bin |
| </code> |
| |
| == NAS Netzlaufwerk Sortierung mit dir == |
| Wird ein Share eines NAS, wie zum Beispiel Q-NAP TS-210 als Netzlaufwerk gemappt, bemerkt man schnell, dass beim Ausführen von //dir// eine willkürliche Sortierung verwendet wird: |
| |
| <code> |
| M:\Betontod\Schwarzes Blut>dir |
| Volume in drive M is MP3 |
| Volume Serial Number is BD65-0021 |
| |
| Directory of M:\Betontod\Schwarzes Blut |
| |
| 09.12.2009 14:49 <DIR> . |
| 01.03.2010 21:42 <DIR> .. |
| 21.03.2010 12:26 3'644'186 09-Betontod - Vielleicht wird alles gut.mp3 |
| 21.03.2010 12:26 4'108'174 10-Betontod - Viva Punk!.mp3 |
| 21.03.2010 12:26 3'797'211 11-Betontod - Wind.mp3 |
| 21.03.2010 12:26 3'773'773 01-Betontod - Generation X.mp3 |
| 21.03.2010 12:26 6'164'432 07-Betontod - Kinder des Zorns.mp3 |
| 21.03.2010 12:26 2'546'439 08-Betontod - Im Sumpf des Verbrechens.mp3 |
| 21.03.2010 12:26 3'080'891 02-Betontod - Schwarzes Blut.mp3 |
| 21.03.2010 12:26 2'944'279 12-Betontod - All die Jahre.mp3 |
| 21.03.2010 12:26 3'870'026 06-Betontod - Glück auf.mp3 |
| 21.03.2010 12:26 3'132'548 05-Betontod - Zweifel.mp3 |
| 21.03.2010 12:26 3'229'667 03-Betontod - Feuer Frei!.mp3 |
| 21.03.2010 12:26 2'936'122 04-Betontod - Stillstand.mp3 |
| 12 File(s) 43'227'748 bytes |
| 2 Dir(s) 174'093'758'464 bytes free |
| </code> |
| |
| Mit dem Parameter ///o// wird eine Sortierung erzwungen. Will man jedoch nicht bei jedem dir-Command diesen Parameter anhängen, kann man diesen in der dircmd-Variable definieren: |
| |
| set dircmd=/o |
| |
| In folgendem Beispiel wird nochmals der Befehl //dir// ausgeführt, jedoch mit der zuvor definierten dircmd-Variable: |
| |
| <code> |
| M:\Betontod\Schwarzes Blut>dir |
| Volume in drive M is MP3 |
| Volume Serial Number is BD65-0021 |
| |
| Directory of M:\Betontod\Schwarzes Blut |
| |
| 09.12.2009 14:49 <DIR> . |
| 01.03.2010 21:42 <DIR> .. |
| 21.03.2010 12:26 3'773'773 01-Betontod - Generation X.mp3 |
| 21.03.2010 12:26 3'080'891 02-Betontod - Schwarzes Blut.mp3 |
| 21.03.2010 12:26 3'229'667 03-Betontod - Feuer Frei!.mp3 |
| 21.03.2010 12:26 2'936'122 04-Betontod - Stillstand.mp3 |
| 21.03.2010 12:26 3'132'548 05-Betontod - Zweifel.mp3 |
| 21.03.2010 12:26 3'870'026 06-Betontod - Glück auf.mp3 |
| 21.03.2010 12:26 6'164'432 07-Betontod - Kinder des Zorns.mp3 |
| 21.03.2010 12:26 2'546'439 08-Betontod - Im Sumpf des Verbrechens.mp3 |
| 21.03.2010 12:26 3'644'186 09-Betontod - Vielleicht wird alles gut.mp3 |
| 21.03.2010 12:26 4'108'174 10-Betontod - Viva Punk!.mp3 |
| 21.03.2010 12:26 3'797'211 11-Betontod - Wind.mp3 |
| 21.03.2010 12:26 2'944'279 12-Betontod - All die Jahre.mp3 |
| 12 File(s) 43'227'748 bytes |
| 2 Dir(s) 174'093'758'464 bytes free |
</code> | </code> |
| |
===== Links ===== | ===== Links ===== |
* [[http://de.wikibooks.org/wiki/Batch-Programmierung:_Beispiele]] | * [[http://de.wikibooks.org/wiki/Batch-Programmierung:_Beispiele]] |