Inhalt einer xxx.bat löschen
Hallo
Ein Haupt-Programm XY löst eine 1.bat aus.
Es soll verhindert werden, das der Inhalt von 1.bat nochmal ausgeführt wird, wenn das Haupt-Programm XY öfters anspricht und damit die 1.bat wiederholt anspricht.
Wenn ich die 1.bat nur lösche od. rename, kommt die Verknüpfungsfehlermeldung und
nachfolgende automatisierte Programme werden solange verhindert, bis ich die Fehlermeldung wegklicke.
folgendes habe ich schon versucht.
In der 1.bat steht
@echo off
start 1.qmx
start z-parswitch -schalt 888 1 300 0
start del_1.bat
cls
in der del_1.bat steht
@echo off
del 1.bat
mk 1.bat
cls
Dies sollte eigentlich bewirken, das die 1.bat hernach ohne Inhalt da steht.
Allerdings wird statt der Datei 1.bat ein Ordner erstellt, der 1.bat heist.
Hab schon versucht hier eine Lösung zu finden. Aber bei dem Wirrwarr von %- und anderen Sonderzeichen kenn ich mich echt nicht aus.
Ich kenne halt nur die einfachen Befehle und da nicht alle.
Ich bitte um eine Lösung, die einfach gestrickt ist
Gruß Stephan
Ein Haupt-Programm XY löst eine 1.bat aus.
Es soll verhindert werden, das der Inhalt von 1.bat nochmal ausgeführt wird, wenn das Haupt-Programm XY öfters anspricht und damit die 1.bat wiederholt anspricht.
Wenn ich die 1.bat nur lösche od. rename, kommt die Verknüpfungsfehlermeldung und
nachfolgende automatisierte Programme werden solange verhindert, bis ich die Fehlermeldung wegklicke.
folgendes habe ich schon versucht.
In der 1.bat steht
@echo off
start 1.qmx
start z-parswitch -schalt 888 1 300 0
start del_1.bat
cls
in der del_1.bat steht
@echo off
del 1.bat
mk 1.bat
cls
Dies sollte eigentlich bewirken, das die 1.bat hernach ohne Inhalt da steht.
Allerdings wird statt der Datei 1.bat ein Ordner erstellt, der 1.bat heist.
Hab schon versucht hier eine Lösung zu finden. Aber bei dem Wirrwarr von %- und anderen Sonderzeichen kenn ich mich echt nicht aus.
Ich kenne halt nur die einfachen Befehle und da nicht alle.
Ich bitte um eine Lösung, die einfach gestrickt ist
Gruß Stephan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 175362
Url: https://administrator.de/contentid/175362
Ausgedruckt am: 25.11.2024 um 07:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo!
Ich glaube mit mk möchte er einen Ordner erstellen, was aber nur mit mkdir funktioniert.
regedit19
Was bitte ist eigentlich mk?
Ich glaube mit mk möchte er einen Ordner erstellen, was aber nur mit mkdir funktioniert.
regedit19
Dies sollte eigentlich bewirken, das die 1.bat hernach ohne Inhalt da steht.
... ob er das möchte?Allerdings wird statt der Datei 1.bat ein Ordner erstellt, der 1.bat heist.
... wundert mich, dass dies mit mk
funktioniert aber wenn bei ihm doch md
oder mkdir
steht, wundert mich, dass er sich wundert, dass ein Ordner erstellt wird ...greetz André
moin und willkommen,
Du irrst dich - @echo off ist ein doppelbefehl und den kennst du - was er macht und das das dich rätseln läßt - merken wir.
André hat dir ja einen Doppeltipp gegeben, aber der ist genauso, wie du in der Überschrift schreibst.
Das "echte" problem ist aber wohl eher hier zu suchen..
Klar kann dir das jeder mal eben zusammenbraten, aber dann lernst du nix.
Falls du Probleme haben solltest, dann nutze bitte die Code Tags und wir helfen (ich nur, wenn das nicht vorangestellt ist)
Gruß
Ich kenne halt nur die einfachen Befehle und da nicht alle.
Du irrst dich - @echo off ist ein doppelbefehl und den kennst du - was er macht und das das dich rätseln läßt - merken wir.
Ich bitte um eine Lösung, die einfach gestrickt ist
Na dann wollen wir mal.André hat dir ja einen Doppeltipp gegeben, aber der ist genauso, wie du in der Überschrift schreibst.
Das "echte" problem ist aber wohl eher hier zu suchen..
Es soll verhindert werden, das der Inhalt von 1.bat nochmal ausgeführt wird, wenn das Haupt-Programm XY öfters anspricht und damit die 1.bat wiederholt anspricht.
- such mal nach:
Start /?
in deiner Dosboxtasklist hier im Forum - z.B der 7. Treffer
Klar kann dir das jeder mal eben zusammenbraten, aber dann lernst du nix.
Falls du Probleme haben solltest, dann nutze bitte die Code Tags und wir helfen (ich nur, wenn das nicht vorangestellt ist)
Gruß
Salve
nul>1.bat bewirkt aber auch, das die nächste Fehlermeldung kommt (keine Win32 Anwendung) weil ja kein Befehl mehr vorhanden ist in der 1.bat
- schau doch mal Spasseshalber, was dir einer ~43 minuten - nachdem du deine Frage gestellt hast - geantwortet hat.
Moin slotis,
viele nennen mich ja "Biber den Geduldigen", aber manchmal...
Ich weiss nicht, was ihr da für einen Heckmeck macht mit irgendwelchen sich gegenseitig rufenden und löschenden Akrobatikbätschen aus dem Internet.
Wenn es denn ein ernstgemeinter Plan sollte, dass der Batch wirklich gelöscht werden oder überschrieben werden muss, damit er nur einmal ausgeführt wird, dann kann er sich doch selbst löschen.
Demo am CMD-Prompt:
Wie zu sehen ist, wird das "Lösch-mich-selbst" aus der Bätschdatei selbst aufgerufen und auch klaglos ausgeführt - warum auch nicht.
Natürlich gibt es Mecker in Form einer Fehlermeldung "Die Batchdatei kann nicht gefunden werden.".
Aber die schicke ich mit "2>nul" zu den Fischen.
Anyway- es ist nun nicht nötig, die Batchdatei zu löschen, wenn sie nur einmal lausfen soll.
Dann stelle doch lieber zwei Dateien bereit, nämlich die cmd-Datei und im selben Verzeichnis eine LaufNurEinmal.xyz mit beliebigem oder keinem Inhalt.
In die zweite Zeile deiner Batch (nach dem @echo off & setlocal) schreibst du
Fertig is.
Grüße
Biber
P.S. "Code Tags" sind diese kleinen grünen Bonbons, die es früher nur in Duty-Free-Shops gab...
Andere Erklärungen findest du unter "Formatierungshilfe", die rot leuchtet, wenn du einen Kommentar schreibst.
viele nennen mich ja "Biber den Geduldigen", aber manchmal...
Ich weiss nicht, was ihr da für einen Heckmeck macht mit irgendwelchen sich gegenseitig rufenden und löschenden Akrobatikbätschen aus dem Internet.
Wenn es denn ein ernstgemeinter Plan sollte, dass der Batch wirklich gelöscht werden oder überschrieben werden muss, damit er nur einmal ausgeführt wird, dann kann er sich doch selbst löschen.
Demo am CMD-Prompt:
C:\Temp>echo pause ^& del "%~f0">delMe.cmd
C:\Temp>delme 2>nul
C:\Temp>pause & del "C:\Temp\delMe.cmd"
Drücken Sie eine beliebige Taste . . .
C:\Temp>delMe
Der Befehl "delMe" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Natürlich gibt es Mecker in Form einer Fehlermeldung "Die Batchdatei kann nicht gefunden werden.".
Aber die schicke ich mit "2>nul" zu den Fischen.
Anyway- es ist nun nicht nötig, die Batchdatei zu löschen, wenn sie nur einmal lausfen soll.
Dann stelle doch lieber zwei Dateien bereit, nämlich die cmd-Datei und im selben Verzeichnis eine LaufNurEinmal.xyz mit beliebigem oder keinem Inhalt.
In die zweite Zeile deiner Batch (nach dem @echo off & setlocal) schreibst du
IF not exist %~dpLaufNurEinmal.xyz goto :eof
hier dein Nutzcode
falls der Schnipsel bis zum Ende gekommen ist ->als letzte Zeile
del %~dpLaufNurEinmal.xyz
hier dein Nutzcode
falls der Schnipsel bis zum Ende gekommen ist ->als letzte Zeile
del %~dpLaufNurEinmal.xyz
Fertig is.
Grüße
Biber
P.S. "Code Tags" sind diese kleinen grünen Bonbons, die es früher nur in Duty-Free-Shops gab...
Andere Erklärungen findest du unter "Formatierungshilfe", die rot leuchtet, wenn du einen Kommentar schreibst.
Zitat von @slofis:
nul>1.bat bewirkt aber auch, das die nächste Fehlermeldung kommt (keine Win32 Anwendung) weil ja kein Befehl mehr vorhanden ist in der 1.bat
nul>1.bat bewirkt aber auch, das die nächste Fehlermeldung kommt (keine Win32 Anwendung) weil ja kein Befehl mehr vorhanden ist in der 1.bat
... ich schrieb auch nicht nul>1.bat ...
type nul>1.bat
Bei
nul>1.bat
bekomme ich unter Win XP höchstens Zugriff verweigertUnd ##-Tags sind in der red|Formatierungshilfe ## eigentlich nicht zu überlesen ...