Parameter durchreichen

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Parameter durchreichen

Post by *Lefteous »

Es ist wahrscheinlich trivial aber ich habe das bisher noch nie gebraucht. Wie kann man TC-Parameter an eine CMD-Datei durchreichen so dass sie dann dort wieder verwendet werden können?

Und noch was: Wie kann ich einen Parameter an ein Programm übergeben, dass diesen dann zusammen mit einem anderen Text in eine Datei schreibt. Also etwa so:

1=PARAMETER
2=Nein
3=Ja

(Es ist keine INI und ich habe gerade keien Lust auf programmieren)
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Wie kann man TC-Parameter an eine CMD-Datei durchreichen so dass sie dann dort wieder verwendet werden können?
Damit meinst du, dass die Parameter, z.B. %L, unverändert in der CMD ankommen? Das wird wohl nicht funktionieren, weil TC die Parameter ja bereits ersetzt. Man müsste zwischen dem % und dem Buchstaben schon irgendein Zeichen setzen, damit TC die Ersetzung unterlässt; was logischerweise bedeutet, später dieses Zeichen wieder herauszufiltern.
Wie kann ich einen Parameter an ein Programm übergeben, dass diesen dann zusammen mit einem anderen Text in eine Datei schreibt.
Meinst du wirklich ein Programm oder doch eher ein Skript? Jedes davon muss natürlich entsprechend geschrieben sein, damit es das tut. Mit einem CMD würde ich das so machen:

Code: Select all

(echo 1=%1
echo 2=%2
echo 3=%3
)>datei
Das geht mit Sicherheit auch einfacher (for-Schleife und/oder aufgerufene Sprungziele mit shift), vor allem, wenn es um eine unbekannte Zahl von Parametern geht.

Wenn ich was falsch verstanden haben sollte, so bitte ich um nähere Erklärung :).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2Dalai
Damit meinst du, dass die Parameter, z.B. %L, unverändert in der CMD ankommen?
Nein natürlich kann der TC sie gerne schon expandieren. Solange ich in der CMD auf den Wert so zugreifen kann, dass Platzhalter ersetzt werden, ist alles ok.
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Lefteous wrote:
Damit meinst du, dass die Parameter, z.B. %L, unverändert in der CMD ankommen?
Nein natürlich kann der TC sie gerne schon expandieren. Solange ich in der CMD auf den Wert so zugreifen kann, dass Platzhalter ersetzt werden, ist alles ok.
Dann verstehe ich das Problem nicht ganz *grübel*. Mit %1 bis %9 greift man auf die ersten 9 Parameter zu, mit %0 auf die CMD selbst und mit %* kommt man an alle Parameter ran, wie sie übergeben wurden.

Falls ich das Problem immernoch nicht erfasst haben sollte (bzw. dir meine Antwort nicht ausreicht), könnte ein Beispiel hilfreich sein, oder eine nähere Erklärung, was erreicht werden soll.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3893
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Nicht vergessen: falls %L ein Leerzeichen enthält, muss es in Anführungszeichen gesetzt werden, damit es als 1 Parameter erkannt wird.

In der CMD Datei kann man dann statt %1 einfach %~1 verwenden um die Anführungszeichen wieder loszuwerden.
#5767 Personal license
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2Dalai
2sqa_wizard
Danke für euren ganzen Tipps. Es klappt jetzt alles ganz prima. Ich kenne mich mit CMD-Dateien und diesem ganzen Kram nicht wirklich aus.

Hier das fertige Skript, vielleicht haben andere ähnliche Aufgaben:

Code: Select all

(echo Path=".\%~3"
echo Setup=index.html
echo Silent=1
echo Update=U
echo Overwrite=1 
)> "%USERPROFILE%\Cmdline\Unpack.txt"

"%PROGRAMFILES%\WinRAR\WinRAR.exe" a -sfx -r -ep1 -z"%USERPROFILE%\Cmdline\unpack.txt" %1 %2\*.*
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Tip: Benutze sicherheitshalber immer Anführungszeichen um die Parameter, falls diese Leerzeichen enthalten sollten. D.h. aus deinem %1 müsste sinnvollerweise "%~1" werden, inkl. Anführungszeichen; analog natürlich für %2 usw.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Post Reply