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

Frage Entwicklung Batch & Shell

GELÖST

Wie kann man eine datei im PATH abfragen?

Mitglied: klausph

klausph (Level 1) - Jetzt verbinden

16.11.2014, aktualisiert 12:25 Uhr, 1006 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...