tele81
Goto Top

Bat auf desktop kopieren, nach ausführung selbst löschen lassen

Hallo ich möchte eine zuvor aufs desktop kopierte bat.

:XP
copy "c:\temp\setup.bat" "C:\Dokumente und Einstellungen\All Users\Desktop" /y > NUL  
goto end

:Vista
copy "c:\temp\setup.bat" "%AllUsersProfile%\Desktop" /y > NUL  
goto end

:Sieben
copy "c:\temp\setup.bat" "%AllUsersProfile%\Desktop" /y > NUL  
goto end

sich nach dem Ausführen selbst löschen lassen

:Sieben
del "%PUBLIC%\Desktop\install.bat"  
goto ende

:Vista
del "%PUBLIC%\Desktop\install.bat"  
goto ende

:XP
del "%allusersprofile%\Desktop\install.bat"  
goto ende

Ihrgendwie findet er die Datei beim löschen nicht, die Pfade irritieren mich ... da die bat unter users/public/desktop angezeigt wird aber der pfad geht auch nicht.....

Content-Key: 181464

Url: https://administrator.de/contentid/181464

Printed on: April 24, 2024 at 12:04 o'clock

Member: bastla
bastla Mar 05, 2012 at 19:02:56 (UTC)
Goto Top
Hallo Tele81!

Schon mal
del "%~f0"
versucht?

BTW: Ein copy in einem Batch braucht kein /y - das fragt sowieso nicht erst ...

Grüße
bastla
Member: Tele81
Tele81 Mar 05, 2012 at 19:08:54 (UTC)
Goto Top
Was bedeutet
%~f0
eigendlich?
Member: bastla
bastla Mar 05, 2012 at 19:14:05 (UTC)
Goto Top
Hallo Tele81!

Findest Du [Edit] noch unter XP [/Edit] per
hh ms-its:%windir%\Help\ntcmds.chm::/percent.htm
heraus ...

Grüße
bastla
Member: Tele81
Tele81 Mar 05, 2012 at 19:21:26 (UTC)
Goto Top
Geht nicht zu Öffnen.....
Member: bastla
bastla Mar 05, 2012 at 19:33:05 (UTC)
Goto Top
Hallo Tele81!

Ihr immer mit diesen neumodischen Betriebssystemen ... face-wink

Na gut, dann eben http://technet.microsoft.com/de-de/query/cc755880 ...

Grüße
bastla
Member: pieh-ejdsch
pieh-ejdsch Mar 05, 2012 at 21:01:38 (UTC)
Goto Top
moin Tele81,

Ihrgendwie findet er die Datei beim löschen nicht, die Pfade irritieren mich ...
wirklich? Schon mal die Fehlermeldung angeschaut.
Wie soll sich der Batch selbst löschen wenn er in dem Moment noch ausgeführt wird?

die BS Auswahl kannste Weglassen und vor dem Abschluss der Batch sollte das genügen, damit sich der Batch welcher grad läuft selbst vom Desktop löscht.
echo "%~f0"|findstr /i /r /c:"\<Desktop\\%~nx0" && start "del" cmd /c "ping localhost -n 2 && ECHO del "%~f0""  
zum schärfen das ECHO entfernen.

Ps.
@bastla
Ihr immer ...
so neumodisch ist das nu auch wieder nicht. - Da sind viel mehr Tücken drin als Du glaubst.

Gruß Phil
Member: Tele81
Tele81 Mar 05, 2012 at 21:07:08 (UTC)
Goto Top
Okay ... und jetzt nochmal bitte für newbees ....

der ping ist klar 2sec pause

beim rest steig ich net durch
Member: bastla
bastla Mar 05, 2012 at 21:18:59 (UTC)
Goto Top
@ph
so neumodisch ist das nu auch wieder nicht.
Eigentlich hatte ich das Nicht-Vorhandensein der "ntcmds.chm" gemeint ...
Da sind viel mehr Tücken drin als Du glaubst.
Wie, wo, was?
echo "%~f0"|findstr /i /r /c:"\<Desktop\\%~nx0" && start "del" cmd /c "ping localhost -n 2 && ECHO del "%~f0""  
Eigentlich sollte es genügen, die Löschzeile - von ganz oben - (vorzugsweise ohne abschließende Zeilenschaltung) am Ende des Batches zu platzieren (unter XP und W7Pro/32 Bit ging's zumindest vor 'ner Minute noch face-wink) ...

Grüße
bastla
Member: pieh-ejdsch
pieh-ejdsch Mar 05, 2012 at 21:26:22 (UTC)
Goto Top
für newbees ....
na mal sehen wie die Blüte zu erreichen ist.

findstr schaut nach ob im Batchpfad "Desktop\Batchdatei" vorkommt mit der Option /iss mir egal ob klein oder GROSS geschrieben. somit wird sich der Batch mit sicherheit in irgend nem Verzeichnis Desktop befinden.
das && löst nur bei Erfolg vom vorhergehenden Befehl aus.
start - startet einen Befehl (cmd mit Option /c für close nach den Befehlen) und ohne die Option /wait geht der Ursprünliche Batch weiter.
damit der erste auch wirklich fertig ist wird auch noch etwas gewartet und dann gelöscht.

Gruß Phil
Member: Tele81
Tele81 Mar 05, 2012 at 22:25:16 (UTC)
Goto Top
Ahhh und
<Desktop\\%~nx0
also das
 %~nx0
muss ich ja noch definieren oder mit der setup.bat ......???

Und was ist dann
%~f0
?
Member: bastla
bastla Mar 05, 2012, updated at Oct 18, 2012 at 16:50:13 (UTC)
Goto Top
Hallo Tele81!

Der Link da oben war vermutlich viel zu unauffällig - daher gerne nochmal:

http://technet.microsoft.com/de-de/query/cc755880

Grüße
bastla

P.S.: Was hat denn der Test mit dem einfachen
del "%~f0"
bei Dir ergeben?
Member: Tele81
Tele81 Mar 06, 2012 at 20:18:09 (UTC)
Goto Top
Konnte nicht gefunden werden ....sagt mir das shell
Member: bastla
bastla Mar 06, 2012 at 20:26:11 (UTC)
Goto Top
Hallo Tele81!

Jetzt noch mal ganz langsam zum Mitschreiben: Wie ist genau der Ablauf?

Nach Deiner bisherigen Beschreibung weiß ich eigentlich nur, dass die Batchdatei durch einen anderen Batch auf den Desktop (wessen Desktop?) kopiert wird - wie und von wem wird sie dann aber ausgeführt? Und schließlich: Wie sieht dieser Batch mit Selbstzerstörungsmechanismus eigentlich aus?

Grüße
bastla
Member: pieh-ejdsch
pieh-ejdsch Mar 06, 2012 at 21:05:23 (UTC)
Goto Top
das klappt ja sogar, so (falls noch paar Subs drunterstehen) - hätt ich nicht gedacht.
goto :eof &del "%~f0"  

Aber da Tele81 selbst nicht genau weiss, dass die Anführungsstriche bei %~f0 bessesr drumrum sollten.
Sonst kann ich mir nicht vorstellen, das sich das Skript selbst nicht findet - Ausser dort ist grad in einer :SUBROUTINE.

Gruß Phil
Member: bastla
bastla Mar 06, 2012 at 21:20:39 (UTC)
Goto Top
Hallo PH!
Ausser dort ist grad in einer :SUBROUTINE
... was aber definitiv keine Stelle wäre, an dem auch nur irgend ein Batch beendet werden sollte ...

Grüße
bastla