Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Batch IF Exist file dann Auswahl als Variable anzeigen

Frage Entwicklung Batch & Shell

Mitglied: Termiman

Termiman (Level 1) - Jetzt verbinden

22.05.2014, aktualisiert 23.05.2014, 1846 Aufrufe, 4 Kommentare, 3 Danke

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

Mitglied: Alex-123
LÖSUNG 22.05.2014, aktualisiert 23.05.2014
Hi Temiman

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

Es handelt sich um eine VBS-Datei

01.
DIM fso     
02.
Set fso = CreateObject("Scripting.FileSystemObject") 
03.
 
04.
If (fso.FileExists("\\Server\Treiber\Brother\brother.inf")) Then 
05.
  WScript.Echo("File exists!") 
06.
  WScript.Quit() 
07.
Else 
08.
  WScript.Echo("File does not exist!") 
09.
End If 
10.
 
11.
WScript.Quit()
Gruß Alex
Bitte warten ..
Mitglied: Termiman
22.05.2014 um 14:43 Uhr
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
Bitte warten ..
Mitglied: Xaero1982
23.05.2014, aktualisiert um 01:59 Uhr
Nabend,

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

01.
if exist "\\Server\Treiber\Brother\brother.inf (vorhanden) 
02.
if exist "\\Server\Treiber\Samsung\samsung.inf (nicht vorhanden) 
03.
if exist "\\Server\Treiber\HP\hp.inf (vorhanden) 
04.
 
05.
 echo Auswahl 
06.
 
07.
 (1) Brother 
08.
 (2) HP 
09.
 
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"

01.
@echo off 
02.
 
03.
set count=0 
04.
 
05.
if exist "\\Server\Treiber\Brother\brother.inf" set /a count=%count%+1 && echo (%count%) Brother 
06.
if exist "\\Server\Treiber\Samsung\samsung.inf" set /a count=%count%+1 && echo (%count%) Samsung 
07.
if exist "\\Server\Treiber\HP\hp.inf" set /a count=%count%+1 && echo (%count%) HP 
08.
 
09.
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:
01.
if %auswahl%==1 blabla Brother 
02.
if %auswahl%==2 blabla Samsung 
03.
if %auswahl%==3 blabla HP 
04.
 
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:

01.
if %auswahl%==B blabla Brother 
02.
if %auswahl%==S blabla Samsung 
03.
if %auswahl%==H blabla HP 
04.
 
Ich jedenfalls wüsste um die Zeit nicht wie man ein variables Batchmenü erstellt

z.b.

01.
 
02.
@echo off 
03.
 
04.
if exist "brother.inf" echo (1) Brother 
05.
if exist "samsung.inf"  echo (2) Samsung 
06.
if exist "hp.inf" echo (3) HP 
07.
 
08.
set /p auswahl=Bitte waehlen:  
09.
 
10.
if %auswahl%==1 echo Brother 
11.
if %auswahl%==2 echo Samsung 
12.
if %auswahl%==3 echo HP 
13.
 
14.
REM oder=========================================== 
15.
 
16.
if exist "brother.inf" echo (B) Brother 
17.
if exist "samsung.inf"  echo (S) Samsung 
18.
if exist "hp.inf" echo (H) HP 
19.
 
20.
 
21.
set /p auswahl=Bitte waehlen:  
22.
 
23.
if /I "%auswahl%"=="B" echo Brother 
24.
if /I "%auswahl%"=="S" echo Samsung 
25.
if /I "%auswahl%"=="H" echo HP 
26.
 
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
Bitte warten ..
Mitglied: Termiman
23.05.2014 um 08:31 Uhr
Hey Xaero,

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

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


beste Grüße

Termiman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Zu viele Variablen in Batch-Script? Speicherproblem? (2)

Frage von dolsch zum Thema Batch & Shell ...

Batch & Shell
gelöst Wert aus Batch Schleife in Variable speichern (5)

Frage von anmelder zum Thema Batch & Shell ...

Batch & Shell
gelöst Variablen Zusammenbauen 2.0 ( Batch ) (6)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (17)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...