![]() |
bat-datei commands
hallo,
ich will folgedes mit einer bat datei machen, hab aber keine ahnung von der syntax :( -bestimmte dateien im gleichen ordner der bat datei löschen -einen zip file in dem ordner der bat datei entpacken -sich selbst löschen(optional) MfG - Ghost007 |
Re: bat-datei commands
Welches Betriebssystem?
Unter Windows/DOS geht das mit "del Dateiname". |
Re: bat-datei commands
Moin Christian,
%0 entspricht in einer Batchdatei dem paramstr(0) in einem Delphi-Programm Beispielsweise alle txt-Dateien im Ordner löschen del %0\..\*.txt Die Zeile für's entzippen hängt von Deinem Tool ab. Sich selber löschen del %0 |
Re: bat-datei commands
Zitat:
Zitat:
jo, es gibt kein bestimmtes tool, es soll bei jedem laufen, am besten mit dem unzip das was bei windows dabei ist. MfG - Ghost007 |
Re: bat-datei commands
|
Re: bat-datei commands
Moin Christian,
Zitat:
|
Re: bat-datei commands
hm, ok, andrer ansatz.
gibt es einen command um dateien zu verschieben? bzw. umzubenennen? und wie führe ich eine exe-datei aus? MfG - Ghost007 |
Re: bat-datei commands
Hast du schonmal an ein einfaches help gedacht? Und Dateien ausführen geht einfach indem man ihren Dateinamen als Kommando eingibt.
|
Re: bat-datei commands
|
Re: bat-datei commands
Mache ein selbstentpackendes Archiv und fertig.
|
Re: bat-datei commands
Zitat:
|
Re: bat-datei commands
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
![]() 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:
was leider den Nachteil hatte, dass es sprachabhaengig wurde (statt y ein j auf einem deutschen System).
echo y|del ...
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:
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:
Bla.exe
start Bla.exe call Bla.exe 1.bat
Code:
2.bat
@echo off
echo %0 2.bat rem Die folgende Zeile wird nie ausgefuehrt: echo Test
Code:
... wenn wir jedoch die 1.bat geringfuegig abaendern, funktioniert es wie erwartet:
@echo off
echo %0 1.bat
Code:
@echo off
echo %0 call 2.bat rem Die folgende Zeile wird nun ausgefuehrt: echo Test Zitat:
Zitat:
Uebrigens kannte auch schon DOS den . als das aktuelle Verzeichnis. Folgende Zeile sollte es also auch tun :zwinker:
Code:
del .\*.txt
Das 1x1 des Windowsadmins :lol: |
Re: bat-datei commands
Moin Olli,
Zitat:
Zitat:
|
Re: bat-datei commands
Zitat:
Alternativ habe ich auch noch eine mit NT4 kompatible Variante in petto, welche sich hier findet: ![]() Aber hier die (IMO) korrektere Variante (mit der Einschraenkung unter dem naechsten Zitat von dir - Stichwort: Kontext):
Code:
Koennte auch einfach nur "del %DIR_%*.txt" lauten.
set DIR_=%~dp0
del %DIR_%\*.txt Ich sage dir auch, wieso ich denke, dass das korrekter (gibt sicher andere Varianten) ist. ".." bedeutet im Kontext eines Verzeichnisses "das darueberliegende Verzeichnis" - die Skriptdatei ist ja nun aber kein Verzeichnis, folglich ist es semantisch falsch, auch wenn es dank des einprogrammierten Shortcuts "alles bis zum davorliegenden Backslash aus dem Pfad entfernen, falls es dort noch einen Backslash gibt" trotzdem funktioniert. Kaeme halt drauf an. Ich gehe davon aus, dass ich einen solchen Hack wie du auch anwenden wuerde, wenn es nicht sauber sein muss sondern "einfach nur" funktionieren soll :zwinker: Zitat:
Beispiel:
Code:
@echo off
call :FUNCTION blablubb :: Exit script goto :EOF :FUNCTION :: Prints ":FUNCTION" echo %0 :: Return to caller goto :EOF |
Re: bat-datei commands
hi,
hab nu eine bat datei gebastelt, die wie folgt aus sieht:
Code:
Hab nu das problem, das sie sich nicht beendet, sondern erst, wenn das programm, welches sie ausfürht, beendet wird.
@echo off
ping -n 5 localhost del "Winamp Controller for G15.exe" del "version.txt" rename "dummy.exe" "Winamp Controller for G15.exe" "Winamp Controller for G15.exe" exit |
Re: bat-datei commands
Code:
start "Winamp Controller for G15.exe"
|
Re: bat-datei commands
Zitat:
|
Re: bat-datei commands
Win 95 ? Sage eher : DOS 3 :mrgreen: Es gilt : Programmname <Parameter> :stupid:
|
Re: bat-datei commands
Zitat:
Vielleicht hätte es sich gelohnt den Beitrag #15 durchzulesen?! Nachtrag: okay, es ![]() |
Re: bat-datei commands
also,
irwie funktioniert das mit start nicht .... :( er macht einfach gar nix ... und wenn ich nur den dateiname eingeb, geht ein cmd fenstern mit titel = dateiname auf und es passiert nichts :( |
Re: bat-datei commands
Okay, fuege uns doch hier nochmal dein Skript so ein, wie es jetzt aktuell ist. Blindschuesse sind hier wohl etwas sinnfrei.
|
Re: bat-datei commands
Guten Morgen!
Naja. Es gibt da manchmal ein Problem mit start, und zwar wird der erste Parameter (sofern in "" angegeben) als ordner (und titel) genutzt, zu dem gewechselt und das programm ausgeführt wird. Dann muss man einfach den Pfad nochmal dahinter setzen (auch in ""). Worauf ich hier jetzt noch drauf hinweisen möchte: ![]() Ein von mir geschriebenes Tool, dass dir auf Mausklick Batch-Dateien zusammenstellt. Du musst nur die entsprechenden Buttons klicken, und abspeichern. MfG J.P. edit 1-3: eine inhaltliche Korrektur, hatte ausversehen nur die erste Seite dieses threads gesehen. |
Re: bat-datei commands
Bat-datei content:
Code:
Und hier tritt dann der beschriebene fehler auf.
@echo off
ping -n 5 localhost del "Winamp Controller for G15.exe" del "version.txt" rename "dummy.exe" "Winamp Controller for G15.exe" //bis hier geht alles gut start "Winamp Controller for G15.exe" //die Zeile macht probleme del %0 |
Re: bat-datei commands
Wie schon geschrieben, verdoppele den Pfad mal.
Delphi-Quellcode:
So wie ich es eben schon beschrieben hatte. :!:
start "Winamp Controller for G15.exe" "Winamp Controller for G15.exe"
del <namederdatei>.bat MfG J.P. |
Re: bat-datei commands
hm, jetzt startet er es 2mal o.O
|
Re: bat-datei commands
Probiers doch einfach mal mit meinem BatchGenerator (link siehe oben)
|
Re: bat-datei commands
gut, habs nun ... danke :)
er hat es nicht 2mal gestartet ... sondern meine application ignoriert im code die zeile "Form1.Close;" irgendwie -.- |
Re: bat-datei commands
hm, frage, wie kann ich ein programm per befehl in der bat datei beenden?
oder geht das gar nicht? MfG - Ghost007 |
Re: bat-datei commands
AFAIK nicht mit Bordmitteln, sowas wie Kill unter *nix gibts bei Windows leider nicht, aber ein gut sortierter Werkzeugkasten könnte z.B. die Tools von SysInternals beinhalten die per Kommandozeile ne ganze Menge machen können.
|
Re: bat-datei commands
Moin Oldgrumpy,
zumindest unter XP sollte es auch mit Bordmitteln gehen, denn dort gibt es das Tool Taskkill. |
Re: bat-datei commands
Aber ebenso wie Tasklist und einige andere nur in der Professional... XP Home das fast überall vorinstalliert beim PC dabei ist, kennt diese Tools nicht.
|
Re: bat-datei commands
oder man richtes dieses in sein Programm mit ein ... also das dieses eine andere Instanz von sich beendet, wenn es mit einem bestimmten Parameter aufgerufen wurde.
Dieses wäre auch besser, da so das gewünschte Programm sich "ordnungsgemäß" beendet könnte. |
Re: bat-datei commands
Vielleicht koennte man ja Hansas Beitrag (#10) nochmal aufgreifen. NSIS (Nullsoft Installer) waere hier IMO eine tolle Sache um all das schoen plattformuebergreifend und kompakt zu erledigen. Nur weil es "Installer" heisst, sollte man es nicht unterschaetzen.
Lesestoff: ![]() |
Re: bat-datei commands
und wo liegt das tool? wenn ich auf der commandozeile taskkill eingebe bekomme ich die Meldung das der Befehl ungültig ist bzw. das Programm nicht gefunden wurde.
|
Re: bat-datei commands
Code:
Verzeichnis von C:\WINDOWS\system32
2004-08-04 12:00 74.240 taskkill.exe 2004-08-04 12:00 73.728 tasklist.exe 2004-08-04 12:00 15.872 taskman.exe 2004-08-04 12:00 140.800 taskmgr.exe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz