termiman
Goto Top

Batch IF Exist file dann Auswahl als Variable anzeigen

Hallo liebe Leute,

ich wollte mir in meinem Skript eine kleine IF Anweisung einbauen. Ich bräuchte noch einmal einen kleinen Wink von euch.

Ich wollte eine selektive Auswahl von Netzwerkdrucker anzeigen lassen wenn die *.inf Datei auf dem Server verfügbar ist.

Quasi so:

if exist "\\Server\Treiber\Brother\brother.inf (vorhanden)
if exist "\\Server\Treiber\Samsung\samsung.inf (nicht vorhanden)
if exist "\\Server\Treiber\HP\hp.inf (vorhanden)

echo Auswahl

(1) Brother
(2) HP


so viel zur Theorie, bei der Umsetzung stehe ich noch ein wenig auf dem Schlauch. Vielleicht könnt ihr mir ja weiterhelfen.

Danke schonmal im Voraus.


beste Grüße

Termiman

Content-ID: 238888

Url: https://administrator.de/contentid/238888

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

Alex-123
Lösung Alex-123 22.05.2014, aktualisiert am 23.05.2014 um 08:31:25 Uhr
Goto Top
Hi Temiman

ich bin jetzt nicht so der Skriptingprofi ! aber vielleicht hilft dir folgender Ansatz weiter...

Es handelt sich um eine VBS-Datei

DIM fso    
Set fso = CreateObject("Scripting.FileSystemObject")  

If (fso.FileExists("\\Server\Treiber\Brother\brother.inf")) Then  
  WScript.Echo("File exists!")  
  WScript.Quit()
Else
  WScript.Echo("File does not exist!")  
End If

WScript.Quit()

Gruß Alex
Termiman
Termiman 22.05.2014 um 14:43:52 Uhr
Goto Top
Hey Alex,

erst einmal vielen Dank für deinen Lösungsversuch. Mit VBS kenne ich mich nicht aus, werde deshalb weiter versuchen es mit batch zu lösen.

Aber vielen Dank für deine Hilfe

bG
Xaero1982
Xaero1982 23.05.2014 aktualisiert um 01:59:05 Uhr
Goto Top
Nabend,

bitte Code-Tags benutzen: vor den code <"code"> und hinter den Code <"/code"> ohne die "".

if exist "\\Server\Treiber\Brother\brother.inf (vorhanden)  
if exist "\\Server\Treiber\Samsung\samsung.inf (nicht vorhanden)  
if exist "\\Server\Treiber\HP\hp.inf (vorhanden)  

 echo Auswahl

 (1) Brother
 (2) HP

Du brauchst ja nach einer If-Anweisung auch eine Anweisung...

Wenn Datei xx existiert DANN mache dieses oder jenes. Bei Batches wird das einfach hinten dran "gepappt"

@echo off

set count=0

if exist "\\Server\Treiber\Brother\brother.inf" set /a count=%count%+1 && echo (%count%) Brother  
if exist "\\Server\Treiber\Samsung\samsung.inf" set /a count=%count%+1 && echo (%count%) Samsung  
if exist "\\Server\Treiber\HP\hp.inf" set /a count=%count%+1 && echo (%count%) HP  

set /p auswahl=Bitte waehlen: 

Bei dieser Form hast du allerdings ein Problem: Es wird so nicht funktionieren. Warum?

Beispiel: Alle oben angegebenen Dateien sind vorhanden. Du bastelst dir also eine If-Anweisung in der es heißt:
if %auswahl%==1 blabla Brother
if %auswahl%==2 blabla Samsung
if %auswahl%==3 blabla HP
Super, klappt.

Nun ist aber die Samsung nicht vorhanden, aber davon weiß deine If Anweisung nichts. Also würde es sich alles verschieben. Dann wäre HP plötzlich auf der 2, aber du hast ja im code %auswahl%==2 blabla Samsung

Also bliebe dir nur folgendes: Entweder du codierst die Zahlen fest - dann würde das Menü unter Umständen mit (3) HP anfangen, wenn die anderen nicht vorhanden sind, aber dann wäre sicher gestellt, dass er auch auf blabla HP zugreift.

Oder du benutzt Buchstaben z.b. B=Brother; S=Samsung; H=HP und änderst die IF Anweisung dann ab in:

if %auswahl%==B blabla Brother
if %auswahl%==S blabla Samsung
if %auswahl%==H blabla HP

Ich jedenfalls wüsste um die Zeit nicht wie man ein variables Batchmenü erstellt face-confused

z.b.

@echo off

if exist "brother.inf" echo (1) Brother  
if exist "samsung.inf"  echo (2) Samsung  
if exist "hp.inf" echo (3) HP  

set /p auswahl=Bitte waehlen: 

if %auswahl%==1 echo Brother
if %auswahl%==2 echo Samsung
if %auswahl%==3 echo HP

REM oder===========================================

if exist "brother.inf" echo (B) Brother  
if exist "samsung.inf"  echo (S) Samsung  
if exist "hp.inf" echo (H) HP  


set /p auswahl=Bitte waehlen: 

if /I "%auswahl%"=="B" echo Brother  
if /I "%auswahl%"=="S" echo Samsung  
if /I "%auswahl%"=="H" echo HP  

Das hier ist allerdings absolut ohne irgendwelche Fehlerabfragen. Also kann er aktuell natürlich auch 2 schreiben, auch wenn 2 nicht angezeigt wird. Musst du dir dann was zusammen basteln.

Gute Nacht
Termiman
Termiman 23.05.2014 um 08:31:14 Uhr
Goto Top
Hey Xaero,

man danke, der Wink war genau richtig. Manchmal ist es halt doch so einfach face-smile

Und auch vielen Dank für die ausführliche Erklärung, und das zu einer fast unmenschlichen Uhrzeit. Cool


beste Grüße

Termiman