Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#12

Re: bat-datei commands

  Alt 20. Apr 2007, 00:35
Fuer die erweiterte Syntax "NT Shell Scripting" von Tim Hill (war glaub ich der Name). Habe es nicht hier, liegt noch in Reykjavik. Damit kann man dann so schoene Sachen machen wie mehr als 30kB grosse Skripte (siehe DDKBUILD)

Wenn es ab Windows 95 gehen soll, wirst du einige Schwierigkeiten bekommen. IMO gab es bei einem dieser fruehen Systeme keinen Switch um DEL mitzugeben, dass es nicht rueckfragen soll. Damals machte man das mit

Code:
echo y|del ...
was leider den Nachteil hatte, dass es sprachabhaengig wurde (statt y ein j auf einem deutschen System).
Wenn du konkretere Fragen stellst, kann ich dir auch helfen, wenn deine Anforderungen fuer Windows 2000 (notfalls auch NT4) und spaeter sind.


Das ausfuehren einer EXE-Datei geht wahlweise mit

Code:
Bla.exe
start Bla.exe
call Bla.exe
START ist ein Befehl des NT Shellskriptinterpreters und erlaubt die Mitgabe bestimmter Parameter wie Prioritaet. Die erste Zeile und die dritte sind sich gleich, solange es ein Programm ist. Wuerdest du eine andere BAT-Datei aufrufen wollen, muesstest du CALL benutzen, weil ansonsten der Interpreter nach dem aufgerufenen Skrit aufhoert. Beispiel:

1.bat
Code:
@echo off
echo %0
2.bat
rem Die folgende Zeile wird nie ausgefuehrt:
echo Test
2.bat
Code:
@echo off
echo %0
... wenn wir jedoch die 1.bat geringfuegig abaendern, funktioniert es wie erwartet:

1.bat
Code:
@echo off
echo %0
call 2.bat
rem Die folgende Zeile wird nun ausgefuehrt:
echo Test
Zitat von Christian Seehase:
das wird nicht gehen können, da es erst sein XP ein eingebautes entzippen gibt.
Und selbst das geht doch nicht auf der Kommandozeile, oder habe ich da was verpasst? Das war doch nur eine Explorer-Shellerweiterung, oder?

Zitat von Christian Seehase:
Beispielsweise alle txt-Dateien im Ordner löschen
del %0\..\*.txt
Und genau sowas geht unter NT soviel eleganter ... gebt mal "FOR /?" ein und schaut euch den letzten Teil der Ausgabe an. Da lernt man zumindest ansatzweise was zur Stringsubstitution (besonders Pfadmanipulation). Dito fuer "SET /?".

Uebrigens kannte auch schon DOS den . als das aktuelle Verzeichnis. Folgende Zeile sollte es also auch tun

Code:
del .\*.txt



Das 1x1 des Windowsadmins
  Mit Zitat antworten Zitat