Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

IF-Abfrage und Ausführungsort-Feststellung in Batch

Frage Entwicklung Batch & Shell

Mitglied: zensbert

zensbert (Level 1) - Jetzt verbinden

23.02.2008, aktualisiert 13:55 Uhr, 6085 Aufrufe, 4 Kommentare

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
Mitglied: bastla
23.02.2008 um 10:50 Uhr
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 /?"):
01.
@echo off & setlocal 
02.
echo Batch gestartet als: %0 
03.
 
04.
echo        von Laufwerk: %~d0 
05.
echo      aus dem Ordner: %~p0 
06.
echo  daher aus dem Pfad: %~dp0 
07.
 
08.
echo      mit Dateinamen: %~n0 
09.
echo         und Dateiyp: %~x0 
10.
 
11.
echo    daher Gesamtpfad: %~f0
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:
01.
echo %Var%
Soferne die Ausgabe nicht angezeigt, sondern in eine Datei geschrieben werden soll:
01.
echo %Var%>"Lw:\Pfad\Dateiname.Dateityp"
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:
01.
echo %Var%>>"Lw:\Pfad\Dateiname.Dateityp"
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
Bitte warten ..
Mitglied: zensbert
23.02.2008 um 11:59 Uhr
hi bastla und danke für die schnelle antwort^^
wie man in eine variable schreibt bzw. abspeichert dass wusste ich, da habe ich mich wohl besch°° ausgedrückt, ich meinte folgendes:
1. reg wert auslesen und variable zuweisen (soweit ok)
2. wenn in der variable der inhalt ist dann sag das..
zb. var mit inhalt a, dann echo b,
hab dafür auch sachen gefunden, jedoch habe ich das problem dass der regwert der in der variable steht Anführungs- und leerzeichen drin hat, dort bricht meine batch dann ab, der inhalt der var ist zb: "C:\PROGRA~1\MICROS~2\OFFICE11\OUTLOOK.EXE" -c IPM.Note /m "%1"
er soll aber halt nich das ausgeben, sondern Outlook 2003..

Thx, Thomas
Bitte warten ..
Mitglied: bastla
23.02.2008 um 12:58 Uhr
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:
01.
echo %Var%|findstr "OFFICE11">nul && echo Outlook 2003
Das "&&" sorgt dafür, dass die folgende Anweisung nur ausgeführt wird, wenn der vorige Befehl keinen Fehler verursacht (= keinen Errorlevel <> 0 geliefert) hat - das Gegenstück dazu wäre übrigens "||".

"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
Bitte warten ..
Mitglied: zensbert
23.02.2008 um 13:55 Uhr
das werd ich probieren, vielen dank^^
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell IF Abfrage Vergleichsoperatoren (4)

Frage von Peterz zum Thema Batch & Shell ...

Linux Tools
gelöst Linux Script mit dreifacher If Abfrage verschachteln (9)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Linux Tools ...

C und C++
gelöst IF Abfrage funktioniert nicht mehr (2)

Frage von pablovic zum Thema C und C ...

Batch & Shell
gelöst Batch - IF - mehr als eine Datei eines bestimmten Typs (9)

Frage von zimbosmurf zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (26)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (18)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...