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

Zahl am Ende einer Variable hochzählen und dann neu befüllen

Frage Entwicklung Batch & Shell

Mitglied: el3ment

el3ment (Level 1) - Jetzt verbinden

14.06.2012 um 12:20 Uhr, 3593 Aufrufe, 6 Kommentare

Hallo, ich möchte mit der Batch Datei auf mehreren Rechnern prüfen ob es eine bestimmte Datei gibt.
Dabei habe ich das Problem, dass die Variable "rechner" immer nur rechner_1, rechner_2 usw. ist und nicht der rechnername welcher oben definiert ist. ist denke ich nichts großes aber ich komme einfach nicht darauf.

01.
@echo off 
02.
set count=1 
03.
set rechneranzahl=4 
04.
 
05.
set dateipfad=c$\Programme\sap\saplogon.ini 
06.
set rechner_1=rechnername_bli 
07.
set rechner_2=rechnername_bla 
08.
set rechner_3=rechnername_blubb 
09.
 
10.
 
11.
:loop 
12.
set rechner=rechner_%count% 
13.
 
14.
IF EXIST "\\%rechner%\%dateipfad%" (echo %time%: %rechner%: Datei vorhanden  >> c:\temp\log.log) ELSE (echo %time%: %rechner%: Datei nicht vorhanden >> c:\temp\log.log) 
15.
 
16.
set /a COUNT=%COUNT%+1 
17.
if (%COUNT%) == (%rechneranzahl%) goto END 
18.
goto loop 
19.
 
20.
 
21.
:end
Mitglied: bastla
14.06.2012, aktualisiert um 13:24 Uhr
Hallo el3ment und willkommen im Forum!

Versuch mal folgende Zeile 12:
call set "rechner=%%rechner_%count%%%"
Außerdem genügt als Zeile 16
set /a count+=1
Grüße
bastla
Bitte warten ..
Mitglied: el3ment
14.06.2012, aktualisiert um 14:47 Uhr
vielen dank, allerdings wird so auch nur %rechner_1% ausgegeben.

danke für den hinweis!
Bitte warten ..
Mitglied: bastla
14.06.2012, aktualisiert um 15:37 Uhr
Hallo el3ment!

Kann ich nicht nachvollziehen ...

Gemeint hatte ich jedenfalls (noch leicht adaptiert):
01.
@echo off & setlocal 
02.
set /a count=1 
03.
set /a arechneranzahl=3 
04.
 
05.
set "dateipfad=c$\Programme\sap\saplogon.ini" 
06.
set "rechner_1=rechnername_bli" 
07.
set "rechner_2=rechnername_bla" 
08.
set "rechner_3=rechnername_blubb" 
09.
 
10.
 
11.
:loop 
12.
call set "rechner=%%rechner_%count%%%" 
13.
 
14.
IF EXIST "\\%rechner%\%dateipfad%" (echo %time%: %rechner%: Datei vorhanden  >> c:\temp\log.log) ELSE (echo %time%: %rechner%: Datei nicht vorhanden >> c:\temp\log.log) 
15.
 
16.
set /a count+=1 
17.
if %count% leq %rechneranzahl% goto :loop
Grüße
bastla
Bitte warten ..
Mitglied: el3ment
14.06.2012 um 15:40 Uhr
hatte den call Befehl nicht übernommen, der war es wohl!

Klasse, funktionier!

Vielen Dank!!!!
Bitte warten ..
Mitglied: bastla
14.06.2012, aktualisiert um 15:49 Uhr
Hallo el3ment!

Freut mich ...

BTW: Von diesem "Pseudo-Array" mit indizierten Variablen halte ich übrigens eher wenig - das ließe sich (da ja ohnehin alle Rechner durchlaufen werden sollen) mit einer "for"-Schleife eleganter lösen, wobei die Rechner entweder in einer eigenen Textdatei aufgelistet werden oder (im Stil von Ur-Basic-DATA-Zeilen) auch im Batch selbst stehen könnten:
01.
@echo off & setlocal 
02.
set "dateipfad=c$\Programme\sap\saplogon.ini" 
03.
set "log=c:\temp\log.log" 
04.
 
05.
::DATA rechnername_bli 
06.
::DATA rechnername_bla 
07.
::DATA rechnername_blubb 
08.
 
09.
for /f "tokens=1*" %%i in ('findstr /b "::DATA" "%~f0"') do call :ProcessComputer "%%j" 
10.
goto :eof 
11.
 
12.
:ProcessComputer 
13.
(if  exist "\\%~1\%dateipfad%" ( 
14.
    echo %time%: %rechner%: Datei vorhanden 
15.
) ELSE ( 
16.
    echo %time%: %rechner%: Datei nicht vorhanden 
17.
))>>"%log%" 
18.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: el3ment
14.06.2012 um 16:07 Uhr
Wow, bin begeistert!

Habe davon ehrlich gesagt keine Ahnung, wollte einfach nur schnell ein kleines Script haben und nich manuel auf jeden Rechner einzeln schauen... :D

Das sieht natürlich professionell aus...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Nach Muster von Dateien, diese hochzählen (12)

Frage von Erik72 zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel: Matirx mit Formel automatisch befüllen (5)

Frage von sims zum Thema Microsoft Office ...

JavaScript
Skript schlägt fehl - nur Zahlen werden gespeichert (3)

Frage von Ah3n0bar6us zum Thema JavaScript ...

Windows Update
Windows Update - WSUS und kein Ende (12)

Frage von the-buccaneer zum Thema Windows Update ...

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(7)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (22)

Frage von Yaimael zum Thema Windows Server ...

Grafik
gelöst CAD Arbeitsplätze (17)

Frage von Diddi93 zum Thema Grafik ...