IF-Abfrage und Ausführungsort-Feststellung in Batch
Hallo,
Ich habe eine Batch die Einen Registrywert ausliest, der Wert sieht ziemlich genau so aus:
"C:\PROGRA~1\MICROS~2\OFFICE11\OUTLOOK.EXE" -c IPM.Note /m "%1" der steht dann in der Variable.
Jedoch hätte ich dann gerne dass er einfach eine textausgabe macht wenn er den wert in die variable kriegt z.b.=Outlook 2003.
Desweiteren würde ich diese Batch dann gern auf einem USB Stick ausführen, die batch soll immer ihren ausführungsort erkennen,
z.b. liegt sie auf dem stick in dem ordner m:\software hätte ich gerne M:\ als variable.. weil an einem anderen pc kann das ja statt m ja auch ein anderer laufwerksbuchstabe sein.
wenn jemand ne idee hat würde ich mich ziemlich freuen, danke..
gruß, thomas
Ich habe eine Batch die Einen Registrywert ausliest, der Wert sieht ziemlich genau so aus:
"C:\PROGRA~1\MICROS~2\OFFICE11\OUTLOOK.EXE" -c IPM.Note /m "%1" der steht dann in der Variable.
Jedoch hätte ich dann gerne dass er einfach eine textausgabe macht wenn er den wert in die variable kriegt z.b.=Outlook 2003.
Desweiteren würde ich diese Batch dann gern auf einem USB Stick ausführen, die batch soll immer ihren ausführungsort erkennen,
z.b. liegt sie auf dem stick in dem ordner m:\software hätte ich gerne M:\ als variable.. weil an einem anderen pc kann das ja statt m ja auch ein anderer laufwerksbuchstabe sein.
wenn jemand ne idee hat würde ich mich ziemlich freuen, danke..
gruß, thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81453
Url: https://administrator.de/forum/if-abfrage-und-ausfuehrungsort-feststellung-in-batch-81453.html
Ausgedruckt am: 12.04.2025 um 10:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo chizophren!
Zunächst zum Ausführungsort: Dieser steht in der Variable %0 zur Verfügung und kann wie folgt verwendet werden (zum Nachlesen der Details: "for /?"):
Du wirst also vermutlich "%~dp0" verwenden wollen.
Zum Thema "Textausgabe": Um den Inhalt einer Variablen auszugeben, müsste man/frau den Variablennamen kennen. Sollte dieser etwa "Var" lauten, wäre die entsprechende Anweisung:
Soferne die Ausgabe nicht angezeigt, sondern in eine Datei geschrieben werden soll:
Die verwendeten Anführungszeichen sind nur dann unbedingt erforderlich, wenn im Pfad oder im Dateinamen Leerzeichen enthalten sind; es schadet aber nicht, sie auf jeden Fall zu setzen.
Durch den letzten Befehl würde eine neue Datei erstellt. Soll nur ene bereits vorhandene Datei um eine weitere Zeile ergänzt werden, ist ">>" zu verwenden, also:
Eine Idee hätte ich übrigens auch noch: 
Poste bitte bei Deiner nächsten Fragestellung schon vorhandenen Code bzw gib etwas detailliertere Informationen (hier: Variablenname, oder, was Du mit "If" vorhattest) ...
Grüße
bastla
Zunächst zum Ausführungsort: Dieser steht in der Variable %0 zur Verfügung und kann wie folgt verwendet werden (zum Nachlesen der Details: "for /?"):
@echo off & setlocal
echo Batch gestartet als: %0
echo von Laufwerk: %~d0
echo aus dem Ordner: %~p0
echo daher aus dem Pfad: %~dp0
echo mit Dateinamen: %~n0
echo und Dateiyp: %~x0
echo daher Gesamtpfad: %~f0
Zum Thema "Textausgabe": Um den Inhalt einer Variablen auszugeben, müsste man/frau den Variablennamen kennen. Sollte dieser etwa "Var" lauten, wäre die entsprechende Anweisung:
echo %Var%
echo %Var%>"Lw:\Pfad\Dateiname.Dateityp"
Durch den letzten Befehl würde eine neue Datei erstellt. Soll nur ene bereits vorhandene Datei um eine weitere Zeile ergänzt werden, ist ">>" zu verwenden, also:
echo %Var%>>"Lw:\Pfad\Dateiname.Dateityp"
Poste bitte bei Deiner nächsten Fragestellung schon vorhandenen Code bzw gib etwas detailliertere Informationen (hier: Variablenname, oder, was Du mit "If" vorhattest) ...
Grüße
bastla
Hallo chizophren!
Wenn Du als Ergebnis "Outlook 2003" haben willst, hängt das doch eigentlich nur vom Teil "OFFICE11" ab - daher könntest Du es zB so versuchen:
"OFFICE11" sollte zwar eigentlich immer in Großbuchstaben geschrieben sein, aber um eine Fehlerquelle auszuschließen, kannst Du dem "findstr" noch ein "/i" spendieren ...
Grüße
bastla
Wenn Du als Ergebnis "Outlook 2003" haben willst, hängt das doch eigentlich nur vom Teil "OFFICE11" ab - daher könntest Du es zB so versuchen:
"OFFICE11" sollte zwar eigentlich immer in Großbuchstaben geschrieben sein, aber um eine Fehlerquelle auszuschließen, kannst Du dem "findstr" noch ein "/i" spendieren ...
Grüße
bastla