Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst exe Datei zum Öffnen einer anderen Datei

Mitglied: Amateur01

Amateur01 (Level 1) - Jetzt verbinden

29.10.2017 um 21:23 Uhr, 1769 Aufrufe, 15 Kommentare, 2 Danke

Hallo, ich ein kompletter Anfänger, der ein kleines Programm schreiben wollte, um einen Löschvorgang zu automatisieren.

Irgendwann hatte ich dann eine Batch-Datei, die ihren Zweck erfüllte. Soll heißen, sie sucht die Datei erst auf Basis ihrer Dateinamenserwiterung und ruft ein Programm auf, um die heruntergeladene Datei zu öffnen und zu verarbeiten. Danach löscht sie alles, was ich nicht brauche.
unbenannt2 - Klicke auf das Bild, um es zu vergrößern
Nun wollte ich aber nicht jedes Mal jedes Mal erst die Datei herunterladen und dann meine Batch starten, also dachte ich mir ich kompiliere sie in eine ausführbare Datei und benutze sie, um damit gleich die herunterzuladene Datei zu öffnen und nach ein bisschen herumprobieren habe ich es dann hinbekommen.
unbenannt - Klicke auf das Bild, um es zu vergrößern
Das Problem ist, dass der Lösch-Anteil des Codes nicht ausgeführt wird, wenn ich die Datei zum Öffnen verwende. Starte ich das Programm alleine klappt alles und ich bin jetzt ziemlich ratlos. Es wäre echt nett, wenn jemadn helfen könnte. Das ist übgrigens mein erster Beitrag, also habt bitte Nachsicht :D Ich bin mir auch nicht sicher, welches Thema hier richtig wäre lol
Mitglied: rubberman
30.10.2017 um 11:57 Uhr
Ich hab keine Ahnung was du da vorhast.

Zitat von Amateur01:
Nun wollte ich aber nicht jedes Mal jedes Mal erst die Datei herunterladen
Mal abgesehen davon, dass das in deinen Scripts auch nicht erfolgt, wo soll denn die Datei herkommen?

Zitat von Amateur01:
also dachte ich mir ich kompiliere sie in eine ausführbare Datei und benutze sie, um damit gleich die herunterzuladene Datei zu öffnen
Batchdateien lassen sich nicht kompilieren. Du kannst sie in eine Art selbstextrahierendes Archiv oder Installer mit Erweiterung .exe packen lassen. Die packen dann aber auch nur dein Originalscript irgendwo ins %temp% Verzeichnis und führen es aus. Ist also völlig nutzlos und ich weiß auch nicht was das mit deinem Problem zu tun haben soll.

Zitat von Amateur01:
Das Problem ist, dass der Lösch-Anteil des Codes nicht ausgeführt wird, wenn ich die Datei zum Öffnen verwende. Starte ich das Programm alleine klappt alles und ich bin jetzt ziemlich ratlos.
Ich verstehe kein Wort, sorry.

Steffen
Bitte warten ..
Mitglied: MasterBlaster88
01.11.2017 um 12:04 Uhr
Zitat von rubberman:
Ich verstehe kein Wort, sorry.

Steffen

Hab schon an mir gezweifelt. Bin froh, dass es nicht nur mir so geht
Bitte warten ..
Mitglied: Amateur01
01.11.2017 um 17:35 Uhr
Hi Steffen, tut mir leid, dass esso unverständlich war. Ich war nie besonders gut darin mich zu erklären :/ Was ich meinte, ist dass ich anstatt die Datei erst einmal zu speichern und dann das Programm auszuführen, es so wie auf dem Bild machen wollte.
unbenannt3 - Klicke auf das Bild, um es zu vergrößern

Batchdateien lassen sich nicht kompilieren. Du kannst sie in eine Art selbstextrahierendes Archiv oder Installer mit Erweiterung .exe packen lassen. Die packen dann aber auch nur dein Originalscript irgendwo ins %temp% Verzeichnis und führen es aus. Ist also völlig nutzlos und ich weiß auch nicht was das mit deinem Problem zu tun haben soll.

Ich sollte aufhören mit Begriffen ruumzuschmeißen, die ich nicht richtig verstehe. Auf jeden Fall habe ich die Datei einfach in einen Batch zu exe Converter getan und wenn ich die exe-Datei bentutze um das Heruntergeladene zu öffnen, funktioniert es soweit, dass das Programm aufgerufen wird, aber der Teil danach wird nicht umgesetzt. Es wird einfach nichts gelöscht.

Ich hoffe das war klarer und vielen Dank für deine Antwort.
Bitte warten ..
Mitglied: Amateur01
01.11.2017 um 17:36 Uhr
Ups das war der Falsche :D
Bitte warten ..
Mitglied: Amateur01
01.11.2017 um 17:39 Uhr
Hi Steffen, tut mir leid, dass es so unverständlich war. Ich war nie besonders gut darin mich zu erklären :/ Was ich meinte, ist dass ich, anstatt die Datei erst einmal zu speichern und dann das Programm auszuführen, es so wie auf dem Bild machen wollte.
unbenannt3 - Klicke auf das Bild, um es zu vergrößern

Batchdateien lassen sich nicht kompilieren. Du kannst sie in eine Art selbstextrahierendes Archiv oder Installer mit Erweiterung .exe packen lassen. Die packen dann aber auch nur dein Originalscript irgendwo ins %temp% Verzeichnis und führen es aus. Ist also völlig nutzlos und ich weiß auch nicht was das mit deinem Problem zu tun haben soll.


Ich sollte aufhören mit Begriffen rumzuschmeißen, die ich nicht richtig verstehe. Auf jeden Fall habe ich die Datei einfach in einen Batch zu exe Converter getan und wenn ich die exe-Datei bentutze um das Heruntergeladene zu öffnen, funktioniert es soweit, dass das Programm aufgerufen wird, aber der Teil danach wird nicht umgesetzt. Es wird einfach nichts gelöscht.

Ich hoffe das war klarer und vielen Dank für deine Antwort.
Bitte warten ..
Mitglied: rubberman
02.11.2017 um 18:30 Uhr
Zitat von Amateur01:
Was ich meinte, ist dass ich anstatt die Datei erst einmal zu speichern und dann das Programm auszuführen, es so wie auf dem Bild machen wollte.
Machst du doch mit dem START Befehl.

wenn ich die exe-Datei bentutze um das Heruntergeladene zu öffnen, funktioniert es soweit, dass das Programm aufgerufen wird, aber der Teil danach wird nicht umgesetzt.
Was aber nichts damit zu tun hat, dass du das Script mit diesem Bat2Exe Mist konvertiert hast. Das geht auch mit dem Script pur. Wie schon gesagt, am Ende wird sowieso nur dein Script wieder ausgepackt und ausgeführt.

Es wird einfach nichts gelöscht.
Das sieht auch alles ein bisschen suspekt aus. Vielleicht erklärst du einfach mal Schritt für Schritt was wie wo passieren soll. Aus irgendwelchen Gründen scheinen bei dir *.osz Dateien in das TEMP Verzeichnis zu wandern, die du dann öffnest. Soweit so gut. Dann willst du irgendwas aus "%localappdata%\osu!\Songs" auf merkwürdige Art und Weise löschen. Was genau soll denn da passieren?

Steffen
Bitte warten ..
Mitglied: Amateur01
03.11.2017 um 14:58 Uhr
Also erst sollen aus dem Ordner "C:\Users\Bini\AppData\Local\osu!\Songs" und dessen Unterordnern alle Dateien aufgelistet werden, die nicht die Dateinamenserweiterung .osu oder .mp3 haben. Diese Liste soll in der Texdatei "Zwischenspeicher.txt" gespeichert werden und das "/a-d" ist dafür da, dass die Unterordner selbst nicht auf die Liste kommen. Den Zwischenschritt habe ich eingebaut, weil ich nach vielen vergeblichen Versuchen gelesen habe, dass man in die For-Schleife nur einen Befehl schreiben kann. Ich brauche ja aber sowohl den "dir" als auch den "findstr" Befehl. Als Nächstes soll der Zwischenspeicher halt zeilenweise abgearbeitet und alles, was drin steht, gelöscht werden. Und das war es auch eigentlich. Die Pause ist übrigens da, damit der zu löschende Inhalt erst entstehen kann. Wenn diese Datei geöffnet wird,
unbenannt4 - Klicke auf das Bild, um es zu vergrößern
entsteht dieser Ordner
unbenannt5 - Klicke auf das Bild, um es zu vergrößern
und das dauert ein, zwei Sekunden.
Bitte warten ..
Mitglied: rubberman
03.11.2017, aktualisiert um 16:34 Uhr
Ungetestet
01.
for /r %%i in ("%localappdata%\osu!\Songs\*.*") do if /i "%%~xi" neq ".osu" if /i "%%~xi" neq ".mp3" del /f "%%~i"
Ohne Zwischenspeicher.
Und wenn das so im Script funktioniert aber nicht mehr im Bat2Exe Gedöns, dann sag ichs nochmal - lass es weg und arbeite mit dem Script.

Steffen
Bitte warten ..
Mitglied: Amateur01
03.11.2017 um 17:04 Uhr
Das hat nicht geklappt :/ Und das Problem liegt glaub ich auch nicht bei der Konvertierung. Die Exe-Datei funktioniert ja, wenn ich sie von alleine starte. Aber wenn ich sie auswähle, um damit die heruntergeladene Datei zu öffnen hakt es halt. Danke, dass du dir das überhaupt noch antust. Das gleiche gilt auch für das Skript: Wenn ich die Datei speichere, sie dann rechtsklicke, auf "Öffnen mit" gehe und die Batch-Datei(bei der ich den Dateipfad wieder angepasst habe) aussuche, passiert genau das Gleiche.
Bitte warten ..
Mitglied: rubberman
03.11.2017 um 18:37 Uhr
(bei der ich den Dateipfad wieder angepasst habe)
Das wäre wohl nicht nötig gewesen. Die Variable %localappdata% zeigt auf das richtige Verzeichnis im Benutzerprofil.

Aber wenn ich sie auswähle, um damit die heruntergeladene Datei zu öffnen
Jetzt komm ich langsam dahinter, was du überhaupt vorhast. Du wählst eine bestimmte Datei per Rechtstklick aus und willst sie über das Kontextmenü öffnen. Lässt sich machen. Aber erst noch mal zu der Löschaktion: Wann werden die zu löschenden Dateien erzeugt? Da du diese osu!.exe mit dem START Befehl ausführst, wird diese asynchron ausgeführt. Das bedeutet, das Script wartet nicht darauf bis osu!.exe öffnet, irgendwas macht oder beendet wird, sondern geht direkt zum Löschen. Falls die zu löschenden Dateien erst von osu!.exe erzeugt werden, existieren sie vermutlich nicht, wenn du sie löschen willst. Aber die Info kannst nur du geben...

Steffen
Bitte warten ..
Mitglied: Amateur01
03.11.2017 um 19:50 Uhr
Ich habe die osu!.exe absichtlich asynchron ausführen lassen, weil das Löschen sonst immer erst passiert ist, nachdem ich osu! wieder geschlossen habe und die Dateien werden erzeugt, wenn osu! geöffnet wird. Deshalb habe ich die 3 Sekunden Pause zwischen dem Öffnen und Löschen eingebaut. Die Dateien sind auf jeden Fall schon vorhanden.
Bitte warten ..
Mitglied: rubberman
LÖSUNG 03.11.2017, aktualisiert um 21:53 Uhr
OK, verstanden.

Speichere folgenden Code in irgendeine .bat Datei und führe ihn aus.
01.
@if (@a)==(@b) @end /*
02.
@echo off &setlocal
03.
2>nul md "C:\myTools"
04.
>"C:\myTools\SendToOsu!.bat" (
05.
  echo @echo off ^&setlocal
06.
  echo if exist "%%~1\" exit /b
07.
  echo if /i "%%~x1" neq ".osz" exit /b
08.
  echo start "" "%%localappdata%%\osu!\osu!.exe" %%1
09.
  echo ^>nul timeout /t 3 /nobreak
10.
  echo for /r "%%localappdata%%\osu!\Songs" %%%%i in ("*.*"^) do if /i "%%%%~xi" neq ".osu" if /i "%%%%~xi" neq ".mp3" del /f "%%%%~i"
11.
)
12.
cscript //nologo //e:jscript "%~fs0"
13.
goto :eof */
14.
var objWSHShell = new ActiveXObject('WScript.Shell'), objShortcut = objWSHShell.CreateShortcut(objWSHShell.SpecialFolders.Item('SendTo') + '\\osu!.lnk');
15.
objShortcut.TargetPath = 'C:\\myTools\\SendToOsu!.bat';
16.
objShortcut.WindowStyle = 7;
17.
objShortcut.Save();
Jetzt drücke die F5 Taste auf dem Desktop oder einem geöffneten Explorerfenster.
Wenn alles so funktioniert, wie ich mir das denke, dann hast du jetzt bei Rechtsklick auf eine .osz Datei im Menüpunkt "Senden an" ein "osu!"... Teste mal.

Steffen
Bitte warten ..
Mitglied: Amateur01
03.11.2017 um 21:22 Uhr
Es funktioniert perfekt, vielen Dank für die Mühe. Ich verstehe bloß leider überhaupt nicht, was da passiert. Könntest du mir das kurz erklären oder würde das den Rahmen sprengen?
Bitte warten ..
Mitglied: rubberman
LÖSUNG 03.11.2017, aktualisiert um 22:26 Uhr
Zitat von Amateur01:
würde das den Rahmen sprengen?
Nein. Ich freue mich eher über jemanden der nicht nur stumpf Code kopiert.

Der obige Batchcode erstellt ein Verzeichnis "C:\myTools" und schreibt dort eine "SendToOsu!.bat". Danach wird mit einem kurzen JScript eine Verknüpfung auf diese Batchdatei mit Name "osu!" im Verzeichnis
"C:\Users\Bini\AppData\Roaming\Microsoft\Windows\SendTo"
erstellt. Dort befinden sich alle Verknüpfungen, die im "Senden an" Menüpunkt zu finden sind.

Um zu verstehen was in "SendToOsu!.bat" passiert, hier erst mal ein ganz kurzer Beispielcode:
01.
@echo off
02.
echo %1
03.
pause
Wenn du eine andere Datei auf dieses Script ziehst, dann öffnet es sich und zeigt dir den vollen Dateiname an. Der Wert der Parametervariablen %1 ist das erste Argument, das an das Script übergeben wurde. In diesem Fall also der Dateipfad.

Genauso verhält es sich nun beim "Senden an" Menü. Der Dateipfad, den du dort an die Verknüpfung übergibst, landet letztlich als %1 im Script "C:\myTools\SendToOsu!.bat". Die hat folgenden Inhalt (kannst du dir natürlich auch live in deinem Verzeichnis ansehen):
01.
@echo off &setlocal
02.
if exist "%~1\" exit /b
03.
if /i "%~x1" neq ".osz" exit /b
04.
start "" "%localappdata%\osu!\osu!.exe" %1
05.
>nul timeout /t 3 /nobreak
06.
for /r "%localappdata%\osu!\Songs" %%i in ("*.*") do if /i "%%~xi" neq ".osu" if /i "%%~xi" neq ".mp3" del /f "%%~i"
Zeilenweise erklärt:
if exist "%~1\" exit /b
Wenn das übergebene Argument ein Verzeichnis ist (was der Backslash hinter dem Parameter aussagt), dann beende das Script sofort.

if /i "%~x1" neq ".osz" exit /b
Wenn die Dateiendung des übergebenen Arguments nicht ".osz" ist, dann beende das Script sofort.

start "" "%localappdata%\osu!\osu!.exe" %1
Starte "osu!.exe" asynchron und übergib den Dateipfad in %1 als Argument.

>nul timeout /t 3 /nobreak
Warte 3 Sekunden.

for /r "%localappdata%\osu!\Songs" %%i in ("*.*") do if /i "%%~xi" neq ".osu" if /i "%%~xi" neq ".mp3" del /f "%%~i"
Durchsuche "%localappdata%\osu!\Songs" rekursiv nach allen Dateien und weise sie nacheinander in den Schleifeniterationen %%i zu. Wenn die Dateiendung nicht ".osu" und nicht ".mp3" ist, lösche die Datei.

Führe ein CALL /? in einem CMD Fenster aus, um zu verstehen was die Modifikatoren mit vorangestelltem ~ Zeichen mit Parameter- und Schleifenvariablen tun.

Steffen
Bitte warten ..
Mitglied: Amateur01
04.11.2017 um 08:31 Uhr
Ok super. Vielen Dank nochmal, du hast mir echt weitergeholfen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch-Datei in Exe-Datei umwandeln - .exe im Autostart

gelöst Frage von Luuke257Batch & Shell7 Kommentare

Hallo zusammen! Ich habe mir (mit reichlicher Hilfe) eine Batch-Datei geschrieben, die informationen über den PC ausliest und in ...

Viren und Trojaner

Laden Makroviren eine .exe-Datei?

gelöst Frage von FrAmErViren und Trojaner2 Kommentare

Hallo zusammen, ich teste momentan eine Whitelisting-Software. Nun habe ich mir folgende Frage gestellt: Laden Makroviren eine .exe-Datei nach ...

Windows Server

WSUS Package Publisher exe Datei verteilen

gelöst Frage von JudgelgWindows Server21 Kommentare

Moin, ich wollte gern eine *.exe Datei über den WSUS verteilen. Leider wird die *.exe in der Konsole angezeigt ...

Installation

Automatisches ausführen einer EXE-Datei nach dowload

Frage von paupau90Installation9 Kommentare

Hallo, ist es möglich eine EXE-Datei automatisch nach dem download starten zu lassen? Der Nutzer/Mitarbeiter soll die Datei nur ...

Neue Wissensbeiträge
Viren und Trojaner
Trend Micro WFBS 10 SP1 Patch 2185
Tipp von Abramelin vor 6 StundenViren und Trojaner

Hi, Hab gerade gesehen das Patch 2185 für TM WFBS 10 SP1 erschienen ist! Werde mal Morgen den Patch ...

Viren und Trojaner

Neuer Virus lässt Windows im abgesicherten Modus starten

Tipp von transocean vor 9 StundenViren und Trojaner2 Kommentare

Moin, lest selbst. Grüße Uwe

Sicherheit
Böser Bug in Domänenkennwortrichtlinie!
Information von DerWoWusste vor 14 StundenSicherheit1 Kommentar

Ich spiegele mal Borncity: In Kürze: Nutzt Ihr eine Domänen-Kennwortrichtlinie der herkömmlichen Art (keine PSO-Richtlinie)? Ja? Und plant Ihr, ...

Windows Tools
7-Zip v19.0 MSI silent uninstall
Tipp von Dirmhirn vor 1 TagWindows Tools5 Kommentare

Hi, ich versuchte grade 7-Zip v19.0 MSI silent zu deinstallieren. mit msiexec /x stürzt mir immer der Explorer ab. ...

Heiß diskutierte Inhalte
Sicherheitsgrundlagen
Sperrung der IMAP Aktivierung: GMail für Apple Mail - in einer Schul-Google-Suite
Frage von lazylandSicherheitsgrundlagen15 Kommentare

Hallo, ich würde mich sehr über Eure Einschätzung und Rat freuen: Der Administrator einer Google Suite (Schule) löscht aus ...

Windows 10
Win10 Remote Desktop User anders
Frage von ludibubiWindows 1014 Kommentare

Folgende Situation: Auf meinem Rechner (Win10) in der Firma (Domänen-Netzwerk) starte ich abends bevor ich gehe einen Newsletterversand. Damit ...

Windows 8
Snipping Tool Alternative für bzw ab Windows 8.1
gelöst Frage von schmitziWindows 814 Kommentare

Hallo, ich suche für Windows 8.1 eine Alternative für das bordeigene Snipping Tool von MS, vielleicht weiss ja jemand ...

Server-Hardware
Anschaffung neuer Server
Frage von tschip1801Server-Hardware14 Kommentare

unsere Firma bekommt einen neuen Server, ich bin schon sehr lange nicht mehr so tief im geschehen um hier ...