Inhalt einer xxx.bat löschen

Mitglied: slofis

slofis (Level 1) - Jetzt verbinden

27.10.2011, aktualisiert 18.10.2012, 2994 Aufrufe, 10 Kommentare

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
Mitglied: regedit19
27.10.2011 um 08:57 Uhr
Hallo!

Du könntest u.U die Option:
verwenden.

Dies wird aber leider dazu führen, da sich die Datei nicht löschen lässt, da sie gerade von sich selbst verwendet wird.


regedit19
Bitte warten ..
Mitglied: Skyemugen
27.10.2011 um 09:11 Uhr
Aloha,

hast du schon versucht einfach statt del 1.bat einfach type nul>1.bat zu nutzen?

Was bitte ist eigentlich mk?

Und wenn 1.bat geleert wird, wie soll das Hauptprogramm 1.bat nächstes mal wieder korrekt ausführen?

... ein wenig seltsam das Ganze

greetz André
Bitte warten ..
Mitglied: regedit19
27.10.2011 um 09:26 Uhr
Hallo!

Zitat von @Skyemugen:

Was bitte ist eigentlich mk?

Ich glaube mit mk möchte er einen Ordner erstellen, was aber nur mit mkdir funktioniert.

regedit19
Bitte warten ..
Mitglied: Skyemugen
27.10.2011 um 09:31 Uhr
Zitat von @regedit19:
Ich glaube mit mk möchte er einen Ordner erstellen

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é
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
27.10.2011, aktualisiert 18.10.2012
moin und willkommen,

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 Dosbox
tasklist 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 @echo off nicht vorangestellt ist)

Gruß
Bitte warten ..
Mitglied: slofis
27.10.2011 um 20:45 Uhr
Zitat von @Skyemugen:
Aloha,

hast du schon versucht einfach statt del 1.bat einfach type nul>1.bat zu nutzen?

Was bitte ist eigentlich mk?

Und wenn 1.bat geleert wird, wie soll das Hauptprogramm 1.bat nächstes mal wieder korrekt ausführen?

... ein wenig seltsam das Ganze

greetz André

Uff, Ich hab mich glatt verschrieben... meinte natürlich md und ich dachte, wenn ich eine Endung anhänge, das dann statt eines Ordners eine *.bat erstellt wird.

Ja, lacht nur, aber ich habe echt sehr wenig Ahnung davon

Die 1.bat fülle ich hernach händisch aus einer Kopie der 1.bat wieder auf.

Ja, mit nul>1.bat ist die 1.bat dann leer.

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

.
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
27.10.2011 um 21:59 Uhr
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.
Bitte warten ..
Mitglied: slofis
27.10.2011 um 23:03 Uhr
n'Abend

Hab mal nach " mit Batch eine Batch erstellen" gegoogelt und hernach folgendes fabriziert.

In der 1.bat steht

start xxx.qmx
start z-parswitch
start 2.bat
cls
In der 2.bat steht

del 1.bat (mit nul> gings nicht)
echo a> 1.bat
cls
Nun existiert die 1.bat mit dem Inhalt a

Die 1.bat kann nun mehrfach angesprochen werden, ohne eine Fehlermeldung zu fabrizieren.

Kleiner Schönheitsfehler:

Wird 1.bat und in folge 2.bat ausgelöst, bleibt am Schluss ein Dos-Fenster auf.

Wie kann ich dieses Fenster mit einem Befehl zum schließen bewegen ?

Gruß Stephan

PS: was sind Code Tags ?
Bitte warten ..
Mitglied: Biber
27.10.2011 um 23:33 Uhr
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
IF not exist %~dpLaufNurEinmal.xyz goto :eof
.... 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.
Bitte warten ..
Mitglied: Skyemugen
28.10.2011 um 08:45 Uhr
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

... ich schrieb auch nicht nul>1.bat ...

type nul>1.bat

Bei nul>1.bat bekomme ich unter Win XP höchstens Zugriff verweigert

Und <code></code>-Tags sind in der Formatierungshilfe (link) eigentlich nicht zu überlesen ...
Bitte warten ..
Heiß diskutierte Inhalte
Microsoft
Staatsanwaltschaften verschicken Vorladungen in Sachen Windows 10 Lizenzkeys
kgbornVor 1 TagInformationMicrosoft6 Kommentare

Nur zu Info für die Käufer der eBay-Schnäppchen - neuer Fall Staatsanwaltschaften verschicken Vorladungen in Sachen Windows 10 Lizenzkeys

Router & Routing
Vodafone Kabel: Eigenen Router an den Kabelanschluss oder einen WLAN-Router ohne Modem hinter die Vodafone Station?
gelöst DyingWordsVor 1 TagFrageRouter & Routing8 Kommentare

Hallo zusammen, da wir demnächst in eine Wohnung mit Kabelanschluss von Vodafone einziehen werden, frage ich mich, ob es sinnvoller ist einen eigenen Router ...

Linux
Installation Grammm Server
smeclntVor 22 StundenFrageLinux11 Kommentare

Hallo zusammen, meine Linux Kenntnisse sind sehr rudimentär trotzdem suche ich eigentlich ständig nach einer Alternative zu MS Exchange. Bis jetzt gab es nichts ...

Windows Systemdateien
Windows CE 6.0 Problem
gelöst PepsiDoseVor 1 TagFrageWindows Systemdateien10 Kommentare

Servus, Ich habe letztens ein alten mini. Netbook mobile Computer gefunden (Oder wie die heißen) welches Windows CE 6.0 betreibt. Mein Problem ist, es ...

Entwicklung
Welche Programmiersprache für REST-API Tool?
chrisproudVor 1 TagFrageEntwicklung7 Kommentare

Hallo zusammen, ich möchte mir gerne eine möglichst einfache aber vielseitig verwendbare Programmiersprache aneignen. Aktuell habe ich nur oberflächliche Kenntnisse in Webentwicklung (html, php, ...

LAN, WAN, Wireless
Kaufempfehlung für aktuellen WLAN AP
SchallyVor 1 TagFrageLAN, WAN, Wireless7 Kommentare

Hallo, ich bin auf der Suche nach einem WLAN AP für mein Neubau. Der AP soll an einen vorhandenen Cisco-SG350-28P Switch gehängt werden. Auf ...

E-Mail
Spamhaus DNSBL return codes - Technical update
DaniVor 1 TagInformationE-Mail

Spamhaus' primary data sets are published in DNS zones known as DNSBLs. Users of that data ask the zone a question (a "query") and ...

E-Mail
Email mittels Batch und Mailsend verschicken
NurAnwenderVor 1 TagFrageE-Mail15 Kommentare

Hallo, Ich möchte Emails über das Programm Mailsend1.19 verschicken, bekomme aber immer die Meldung "Error: Unrecognized option: E-Mail" Die Batch sieht folgendermaßen aus: echo ...