Programm wahlweise mit verschiedene Dateien starten

Es funktioniert direkt in deinem Ordner direkt auf C:\ und auf dem Desktop.
Wenn ich es aber im Ordner C:\Program Files (x86) ausführe geht es nicht.
 
Habe ich versucht, zumindest mit Rechtsklick und dann als Admin ausführen, klappt aber leider nicht
 
Zuletzt bearbeitet von einem Moderator:
Raijin schrieb:
Im Übrigen ist es wenig sinnvoll, wenn du gleich 2x MACHDEINDING machst. Sinn des Beispiels war, dass durch die Auswahl der Datei entweder der Pfad "DATEIA" oder der Pfad "DATEIB" genommen wird - hier finden die dateispezifischen Dinge statt wie das Umkopieren - und beide Pfade werden dann im gemeinsamen Block "MACHDEINDING" fortgesetzt. Da in deinem Beispiel die beiden Ziel-Dateien identische Dateinamen haben, könnte der Programmaufruf bei MACHDEINDING daher universell sein und stets XY.txt nehmen und die Unterscheidung welche XY.txt es nun ist, erfolgt in den beiden DATEI-Blöcken nebst copy in den Anwendungsordner
Wie müsste es denn aussehen?
Müsste ich unter DATEIA und unter DATEIB jeweils nur den Pfad zur jeweiligen Datei einfügen?
Käme der Copy Befehl dann unter MACHDEINDING?

Es tut mir leid das ich so auf eure Hilfe angewiesen bin.
 
Code:
:DATEIA
copy /Y Quellpfad\DateiA.txt Zielpfad\data.txt
GOTO:MACHDEINDING

:DATEIB
copy /Y Quellpfad\DateiB.txt Zielpfad\data.txt
GOTO:MACHDEINDING

:MACHDEINDING
programm.exe Zielpfad\data.txt
GOTO:EOF

So sähe das dann exemplarisch aus. Über das Menü wählt man mit 1 bzw. 2 in welchen DATEIx Block das Skript springt. In diesem Block wird dateispezifisch der copy Befehl ausgeführt. Man beachte, dass in diesem Beispiel das Ziel der Kopieraktion identisch ist, es wird also die Datei data.txt im Zielpfad jeweils durch die ausgewählte DateiA.txt bzw. DateiB.txt ersetzt, aber der Zielname data.txt bleibt erhalten. So kann die programm.exe mit ein- und derselben Datei aufgerufen werden und man benötigt demnach nur ein MACHDEINDING, weil die Auswahl bzw. die Kopiererei bereits stattgefunden hat und die data.txt aktualisiert wurde.

Je nachdem wie die programm.exe arbeitet, kann man natürlich auch ohne das copy direkt in DATEIA bzw. DATEIB jeweils programm.exe ......\DateiA.txt bzw. DateiB.txt aufrufen. Kommt eben darauf an was konkret passieren soll. In diesem Fall würde man mit programm.exe direkt auf der Quelle arbeiten und diese ggfs auch ändern. Bei der Kopier-Geschichte würde man ja stets nur auf der Kopie arbeiten.
 
  • Gefällt mir
Reaktionen: kolchose
Ja das ist ok wenn man nur auf der jeweiligen Kopie arbeitet, da ja in diesem *.txt File Parameter sind die das eigentliche Programm braucht wenn es gestartet ist.
Werde da noch ein wenig probieren und muss schauen warum das kopieren im Program Files (x86) Ordner nicht klappt.
 
Versuche sonst mal folgendes:

Start --> cmd
--> copy [SPACE] (noch kein Enter!)
--> c:\prog [TAB TAB TAB bis das richtige Program Files auftaucht] \weitererpfad [TAB] \datei [TAB] [SPACE]
--> c:\anwendungspfad - mit [TAB] navigieren wie oben - \zieldatei.txt
--> [ENTER]

TAB ist die Autovervollständigung von Pfaden/Dateien. Windows wird automatisch die "" hinzufügen, wenn nötig. So baust du dir von Hand erstmal deinen copy Befehl auf und testest ob er überhaupt geht. Wie @M-X schon erwähnte musst du allerdings darauf achten, dass die Eingabeaufforderung (cmd) als Administrator ausgeführt wird, wenn du in geschützten Ordnern hin und herkopieren willst.
Wenn der copy Befehl funktioniert, markierst du ihn im cmd-Fenster mit der Maus, drückst STRG+C und fügst ihn so in die Batch ein.
 
  • Gefällt mir
Reaktionen: kolchose
Super vielen Dank,

Wenn ich es jetzt manuell über die Konsole als Admin starte funktioniert es. Datei wird kopiert und das Programm wird gestartet.
Wenn ich jetzt eine Verknüpfung auf dem Desktop erstelle und diese mit rechts Klick als Admin starte funktioniert es auch.

Vielen Dank für eure Hilfestellung.
 
  • Gefällt mir
Reaktionen: M-X und Raijin
Zurück
Oben