aktuelles Verzeichnis einer verknüpfung als parameter an die Zieldatei übergeben?
Ich habe schon sowas wie chdir und &%~dp0% versucht als Parameter in "Ziel" einer Verknüpfungsdatei hinten anzufügen. Nur leider wird der batch code selber an die Anwendung (anwendung.exe) übergeben. Das heißt die Anwendung bekommt "chdir" als string übergeben und nicht den pfad der Verknüpfung. Diese kann immer mal woanders liegen.
Ich hätte mich auch mit einer cmd oder bat datei als Verknüpfung zufrieden gegeben, aber dort kann ich das icon nicht ändern. Die Anwendung muss immer wissen aus welchen pfad die Verknüpfung bzw. cmd datei gestartet wird.
Irgendwelche vorschläge? Eine Exe für eine Exe schreiben? (noch keine Ahnung wie man das machen würde)
4 Antworten
Ich versteh nicht ganz, was du vor hast. Wie wird den deine Batchdatei an die Anwendung übergeben?
Wenn ich Deine Frage richtig verstanden habe (vielleicht magst Du ja ein paar Zeilen kommentierten Code posten), könnte das Problem in den Escape Zeichen liegen. Also, dass der Code in der Interpretation der Zeichen nicht sauber geschrieben ist.
Ich will jetzt batch-Syntax nicht nachschlagen, daher mal vulgo:
cd.. /// ist als Befehl zu lesen
myDatei.dat /// ist als String zu lesen
'hier kracht es /// ist als Kommentar zu lesen.
So etwas meine ich. Diese mögliche Unsauberkeit kann auch einige Zeilen davor liegen, wo der Dateiname generiert wird.
Eine exe kannst Du allenfalls mit Freepascal (Lazarus) schreiben. Damit schießt man zwar mit Kanonen auf Spatzen, doch damit programmierst Du alles. Und noch mit 1001 anderen Sprachen.
habs selber geschafft, mit "Bat To Exe Converter " und "reshacker"
So ganz verstehe ich nicht was du machen möchtest ;-)
Zu deinem letzten Absatz mit dem mittlerweile kostenlosen AdminscriptEditor kannst du aus batches eine .exe machen, der Editor geht dabei zwar auch einen sehr eigenen Weg aber es funktioniert.
Ganz nebenbei kannst da mit kix, einer Art Batcherweiterung die von einem MSler mal als Privatprojekt geschaffen wurde, einiges mehr machen als mit herkömmlichen Batches, erreicht aber nicht den Umfang von Powershell.