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, 6055 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 ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Datenbanken
gelöst IF Abfrage im SELECT Oracle SQL (2)

Frage von Roadrunner777 zum Thema Datenbanken ...

Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Batch & Shell
gelöst Problem mit "username" abfrage in Batch Dateien (5)

Frage von KriAIT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (17)

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

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...