Top-Themen

Aktuelle Themen (A bis Z)

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 Wie kann man eine datei im PATH abfragen?

Mitglied: klausph

klausph (Level 1) - Jetzt verbinden

16.11.2014, aktualisiert 12:25 Uhr, 1055 Aufrufe, 7 Kommentare

guten tag
dank friemler und seinem for-tutorial bin ich schon weit gekommen.

meine aufgabe:
gibt es die datei sfk.exe im path?
wenn ja, mache weiter.
wenn nein, gebe ne warnung aus und stoppe.


friemler hatte die for-schleife mit echo:.
for %%n in ("sfk.exe") do echo "%%~$Path:n"
oder einfacher:
for %%n in ("sfk.exe") do echo "%%~n"

Meine Ansätze sind für den Einsatz IN einer bat/cmd gestrickt, deshalb das Doppel %. das hat schon Weile gedauert, bis ich friemlers Ansatz verstanden habe und auf den Einsatz in der bat/cmd umgemünzt habe


das ganze kann man auch mit call machen:
for %%n in ("sfk.exe") do call "%%~$Path:n"
oder:
for %%n in ("sfk.exe") do call "%%~n"


naja. aber wie werte ich das aus?
mit errorlevel habe ich das schon versucht.
if errorlevel 0 goto 123 (also erfolg)
if errorlevel 1 goto 456 (ist nicht im path)
das klappt nicht. auf echo/call kann ich kein errorlevel auswerten. oder denke ich falsch?


wie ihr seht, ist alles mit "" versetzt, weil sfk.exe HIER liegt:
c:\programme (x86)\Tools [nach programme ist einmal LEER]


eigentlich ist doch aufgabe eine sehr einfache, oder?
was habe ich falsch gemacht?


ein lösungsansatz fällt mir noch ein:

man könnte so vorgehen
for %%n in ("sfk.exe") do echo "%%~$Path:n" > irgendwas.txt
dann irgendwas.txt auf den korrekten inhalt "c:\programme (x86)\Tools\sfk.exe" durchsuchen. und auf "gefunden" oder "nicht gefunden" abfragen, und entsprechend reagieren lassen. ich weiss es nicht, ist das nicht VIEL zu kompliziert?

danke bei mitdenken
euer klaus(i)
Mitglied: Endoro
LÖSUNG 16.11.2014, aktualisiert um 20:28 Uhr
Hey,
mein Vorschlag:
01.
where sfk.exe >nul 2>&1 && echo sfk.exe gefunden || echo sfk.exe nicht gefunden
Könnte sein, dass where nicht in XP läuft.
Gruss, Endoro
Bitte warten ..
Mitglied: klausph
16.11.2014 um 18:43 Uhr
oh. prima.
ein externes kommando. kannte ich nicht. ja, wxp kennt es nicht (gerade gestetet...)
hm. ich werd' mal mit where jetzt was anfangen.... es ist ziemlich unwahrscheinlich, daß mein skript auf wxp laufen muss....
TROTZDEM wäre es sehr charmant, wenn man mit der cmd-shell eine lösung hätte. dann wäre es mehr oder weiniger betriebssystem-unabhängig...
mal schauen.
bis gleich!
gruß aus radeberg
vom k.l.
Bitte warten ..
Mitglied: Biber
LÖSUNG 16.11.2014, aktualisiert um 20:29 Uhr
Moin klausph,

eine Errorlevel-Auswertung auf "Echo" kannst du zwar machen, aber da "echo" immer Errorlevel 0 zurückgibt, besser so:

Beispiel am CMD-Prompt:
for %n in ("notepad.exe") do @echo "%~$Path:n"|find /i "notepad.exe">nul && echo is da 
for %n in ("notepad.exe") do @echo "%~$Path:n"|find /i "notepad.exe">nul || echo is nich da
Statt "notepad.exe" in deinem Fall "sfk.exe", statt "echo is da"/"echo is nich da" was immer sinnvoll sein mag.. ein Befehl, ein Goto.., ein Call:Sub.

Im Batch wieder die %-Zeichen verdoppeln.

Grüße
Biber

[Edit @ bastla. Moin, ja, ich denke, da liegen wir nicht weit auseinander.. [/Edit]
Bitte warten ..
Mitglied: bastla
LÖSUNG 16.11.2014, aktualisiert um 20:29 Uhr
Hallo klausph!

Kompliziert?
01.
for %%n in ("sfk.exe") do echo "%%~$Path:n"|findstr /ie "sfk.exe">nul && ( 
02.
    echo Gefunden 
03.
) || ( 
04.
    echo Leider nein 
05.
)
Anstelle der "echo"-Zeilen bieten sich vermutlich passende "goto" an ...

Grüße
bastla

[Edit] @ Biber: Da wären wir uns ja wieder einmal ziemlich einig ... [/Edit]
Bitte warten ..
Mitglied: klausph
16.11.2014, aktualisiert um 20:16 Uhr
danke ihr Lieben!
mittlerweile habe ich mir was für mein script zusammengeschustert:

01.
  
02.
@echo off 
03.
rem die konstruktion mit where.exe ist von "endoro" aus dem forum auf administrator.de vom 16.11.2014 um 18.13Uhr 
04.
rem die abfrage nach den errorleveln ist aus dem buch von Alois Kneisle "Batch-Betrieb ..."(Hanser 1996) S.126 
05.
rem nebenbei: das halte ich für ein wichtiges (altes!) grundlagenwerk, um die "batchsprache" zu erlernen. 
06.
 
07.
where /Q sfk.exe 
08.
for %%x In (0 1) do if errorlevel %%x set sfklevel=%%x 
09.
 
10.
rem beide nachfolgenden echo 's sind NICHT wichtig. nur spielerei ;-) 
11.
rem ich SEHE immer gerne was..... 
12.
if %sfklevel%]==0] echo alles prima. sfk gibt es! 
13.
if not %sfklevel%]==0] echo chef. problem!. sfk gibt nicht! 
14.
 
15.
rem auch DAS ist NICHT wichtig. nur für die optik ;-) 
16.
echo sfk.exe liegt auf: 
17.
for %%n in ("sfk.exe") do echo "%%~$Path:n" 
18.
pause 
19.
rem das WICHTIGE ist, ich habe eine set-variable gefüllt: die sfklevel mit einer 1 oder einer 0. das kann ich abfragen. 
20.
 
21.
 

[die pause muß natürlich weg]


@Biber und @bastla. danke an Euch! find.exe und findstr.exe sind externe befehle, genauso wie where.exe . es scheint also nix zu geben, was PUR auf cmd.exe beruht. ich habe diese lösungen sehr gerne, die auf einer "nackten" cmd.exe beruhen.
die gefahr, daß externe befehle untergegangen sind, oder eben fehlen, ist wohl immer größer.


danke und viele grüße
euer klaus(i)
Bitte warten ..
Mitglied: Endoro
16.11.2014, aktualisiert um 23:03 Uhr
Zitat von klausph:

@Biber und @bastla. danke an Euch! find.exe und findstr.exe sind externe befehle, genauso wie where.exe . es scheint also nix zu
geben, was PUR auf cmd.exe beruht. ich habe diese lösungen sehr gerne, die auf einer "nackten" cmd.exe beruhen.
die gefahr, daß externe befehle untergegangen sind, oder eben fehlen, ist wohl immer größer.

Naja, find und findstr gehen nicht einfach verloren. Fall doch, ist es Zeit für eine Windows-Reinstallation.
Übrigens geht mit Batch quasi alles

01.
for %n in ("sfk.exe") do @if not "%~$Path:n"=="" (echo Gefunden!) else echo Nicht gefunden!
Gruss, Endoro
Bitte warten ..
Mitglied: klausph
18.11.2014 um 13:08 Uhr
guten morgen enduro
ich muss da noch nen nachsatz nachschieben.
es ging mir nicht um die kontrolle des "PATH", was c:\windows\system usw usw anging.

folgendes nachträgliches:
habe da ein skript, was ca 12 Mill. datensätze verwurstet. da gehts um datenbewegungen von jeweils 10 GB
eine optische kontrolle ist da ganz schwer. ich war fast am ende meiner tests -diegehen schon 3 monate so!
irgendwann DURCH zufall habe ich gemerkt, daß ein such&ersetz-tool gar nicht angesprungen war. das script war so gestaltet, daß die ausgangsdatei überschrieben wurde
es musste durch irgendwas(?) passiert sein, daß eben c:\programme (x86)\tools aus dem %PATCH% rausgekickt wurden. keiner hats gemerkt!
deshalb muss ich den path auf das vorhandensein eines bestimmten tools überprüfen.
alternativ könnte man natürlich c:\programme (x86)\tools\sfk.exe schreiben. dazu bin ich aber zu faul
das war der hinter(n)grund
grüße aus radeberg
vom klaus(i)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Destination Path Abfrage mit Powershell
gelöst Frage von windelterroristBatch & Shell5 Kommentare

Guten Morgen Admins :) Für eine Destinationpath Abfrage habe ich so meine Vorstellungen, kann sie aber selbst nicht wirklich ...

Windows Server
MagicInfo und Path
gelöst Frage von agowa338Windows Server2 Kommentare

Hallo, ich habe hier ein sehr komisches Phänomen. Ich habe einen Server mit 2012R2 mit allen Updates installiert, anschließend ...

Windows Server

Script zum Löschen von Dateien trotz Max-Path

gelöst Frage von CitronellaWindows Server2 Kommentare

Hallo Allerseits, ich werde nicht ganz fündig, daher wende ich mich an euch: Ich habe ein Script zum automatisierten ...

Batch & Shell

Dateien nach Eigenschaften abfragen und auflisten

gelöst Frage von DerPueBatch & Shell3 Kommentare

Hallo zusammen, ich möchte in einem Verzeichnis alle Dateien darin und in den darunterliegenden Verzeichnissen nach "Author" abfragen und ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement18 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...