michael193
Goto Top

Argumentübergabe

Hallo zusammen,

Ich komme mit meinem Problem nicht weiter und wende mich daher an dieses Forum.

Im Prinzip möchte ich unter Windows XP in einer Batch-Datei diese Zeile ausführen:

C:\Keil\uv3\uv3 -f bsm.uv2 -t "Release" -o Prog_Output.txt

Das Problem ist, dass der Pfad der Anwendung "C:\Keil\uv3\" nicht fix ist und je nach Rechner verschieden sein kann. Die absolute Pfadangabe ist nicht geeignet. Der Dateityp *.uv2 ist richtig verküpft, d.h. dieser Aufruf

bsm.uv2 -t "Release" -o Prog_Output.txt

startet die Applikation, doch leider fehlt das wichtige Argument -f, dass ganz am Anfang, also vor bsm.uv2 -t "Release" -o Prog_Output.txt stehen muss! Eigentlich möchte ich dies hier (und ich weiss, dass das so NICHT geht):

-f bsm.uv2 -t "Release" -o Prog_Output.txt

Hat jemand eine Idee, wie dieses Problem zu lösen ist?

Vielen Dank,
Michael

Content-Key: 110353

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

Printed on: May 12, 2024 at 14:05 o'clock

Member: NetWolf
NetWolf Mar 02, 2009 at 17:24:13 (UTC)
Goto Top
Hallo Michael,

das kann nicht funktionieren, da kein Programm den Parameter -f interpretiert.

richtig wäre z.B.:

MeinProgramm -f bsm.uv2 -t "Release" -o Prog_Output.txt

Den Pfad kannst du ja per Parameter %1 oder per Systemvariable übergeben.


Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)
Member: Biber
Biber Mar 02, 2009 at 18:03:34 (UTC)
Goto Top
Moin Michael193,

willkommen im Forum.

Ich denke, Du warst schon ganz nah dran an einer Lösung mit...
Der Dateityp *.uv2 ist richtig verküpft,
Dann schau doch mit "FType" und "Assoc" am CMD-Prompt nach, mit was die Endung ".uv2" verknüpft ist und ergänze zwischen der "UVverwurste.exe" und dem Parameter "%i" noch Deine Lieblingsparameter "-f " oder wonach Dir ist.

Assoc /? und FType /? am CMD-Prompt helfen.

Grüße
Biber
Member: Michael193
Michael193 Mar 03, 2009 at 07:46:51 (UTC)
Goto Top
Hallo Biber,

Vielen Dank für die prompte Hilfestellung. Ich glaube assoc und ftype hilft mir wirklich weiter. Wie stelle ich es an, dass ich mit diesen beiden Befehlen den Pfad des verknüpften Dateityps auslesen kann? Hier ein Beispiel dazu:

C:\> assoc .pdf
.pdf=AcroExch.Document

C:\>ftype AcroExch.Document
AcroExch.Document="C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" "%1"

Wie kann ich das Ganze automatisieren, dass ich ausgehend von der Dateiendung den Pfad der Anwendung kriege? In diesem Fall sollte das Resultat "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" sein.

Merci,
Michael
Member: bastla
bastla Mar 03, 2009 at 21:10:05 (UTC)
Goto Top
Hallo Michael193!

Sollte sich so lösen lassen:
@echo off & setlocal
set "Ext=.pdf"  

set Prog=
for /f "tokens=2 delims==" %%a in ('assoc %Ext% 2^>nul') do for /f "tokens=2 delims==" %%t in ('ftype %%a 2^>nul') do for %%p in (%%t) do if not defined Prog set Prog=%%p  
if defined Prog (echo %Prog%) else (echo Keine Anwendung fuer den Typ %Ext% gefunden!)
Grüße
bastla
Member: Michael193
Michael193 Mar 05, 2009 at 15:05:02 (UTC)
Goto Top
Hallo bastla,

Herzlichen Dank für Deine Hilfe. Mit Deinem Code hat's geklappt.

Grüsse,
Michael