Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Inhalt einer xxx.bat löschen

Frage Entwicklung Batch & Shell

Mitglied: slofis

slofis (Level 1) - Jetzt verbinden

27.10.2011, aktualisiert 18.10.2012, 2845 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:
01.
 %0 
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
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
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:
 
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.
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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Exchange Server
Inhalt von Postfächern in Exchange löschen (9)

Frage von m.reeger zum Thema Exchange Server ...

Exchange Server
Exchange 2010 Akzeptierte Domäne löschen (4)

Frage von Rob1982 zum Thema Exchange Server ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...