WinFuture-Forum.de: Verzeichnisabfrage im Netz - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Verzeichnisabfrage im Netz


#1 Mitglied ist offline   casi4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 26. April 19
  • Reputation: 0

geschrieben 31. Oktober 2019 - 11:13

Hallo liebe Forenmitglieder,

ich habe ein kleines Problem mit meiner Batch. Die Batch hat eigentlich die Aufgabe alle Rechner im Adressbereich zu besuchen und zu kontrolieren, ob 2 Verzeichnisse vorhanden sind, also eine Undbedingung. Leider poppt das Dosfenster nur kurz auf, wer sieht hier den Fehler?

@echo off
set "NET=192.168.178"

for /l %%f in (1, 1, 255) do(

ping -n 1 %NET%.%%f | findstr /i "TTL" 
 (if exist "\\%NET%.%%f\c$\Program Files (x86)\Data\Archiv" 
   echo %NET%.%%f Archiv Installation vorhanden
   
   if exist "\\%NET%.%%f\c$\reg" 
   echo Kontrolldirectory  vorhanden )
       
  
)
pause



Liebe Grüße und eine schöne Restwoche

Chris
0

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 31. Oktober 2019 - 12:48

Kommandozeile aufmachen und da ausführen. Dann geht auch nichts zu.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   Stefan_der_held 

  • Gruppe: Offizieller Support
  • Beiträge: 14.289
  • Beigetreten: 08. April 06
  • Reputation: 885
  • Geschlecht:Männlich
  • Wohnort:Dortmund NRW
  • Interessen:Alles wo irgendwie Strom durchfließt fasziniert mich einfach weswegen ich halt Elektroinstallateur geworden bin :)

geschrieben 31. Oktober 2019 - 13:02

Wenn ich das einfach mal auf mein Netz hin ausführe erhalte ich direkt (Aufruf über CMD, anklickbar erscheint nichts)

"do(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.


also ist die Schleife schon fürn Popo.

Bin allerdings auf'm Sprung sodass ich das nicht weiter verfolgen kann.
0

#4 Mitglied ist offline   casi4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 26. April 19
  • Reputation: 0

geschrieben 01. November 2019 - 09:04

Guten Morgen,

ja das dachte ich mir, aber wär natürlich schön wenn er mir zeigen würde wo das Probolem ist, er schliesst das Fenster sofort wieder, selbst wenn ich einen PAUSE Befehl einbaue.

Herzliche Grüße


Chris
0

#5 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 01. November 2019 - 15:53

Wie wäre es mit "do (" statt "do(" ?

Tutorial zur FOR-Schleife
AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#6 Mitglied ist offline   Shannon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 131
  • Beigetreten: 12. Februar 13
  • Reputation: 11
  • Geschlecht:unbekannt

geschrieben 01. November 2019 - 18:40

da sind noch mehrere BUGS on Tour

so müßte es gehen:


@echo off
set "NET=192.168.178"

for /l %%f in (1, 1, 255) do (
   ping -n 1 %NET%.%%f | findstr /i "TTL" > NUL
   if not errorlevel 1 (
      if exist "\\%NET%.%%f\c$\Program Files (x86)\Data\Archiv" (
          echo %NET%.%%f Archiv Installation vorhanden
          if exist "\\%NET%.%%f\c$\reg"   echo Kontrolldirectory  vorhanden
      ) else (
          echo ---------- %NET%.%%f nicht vorhanden
      )
)

pause




g.s.
0

#7 Mitglied ist offline   casi4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 26. April 19
  • Reputation: 0

geschrieben 01. November 2019 - 22:09

Danke Shannon, hat aber leider nicht geklappt, Fenster geht sofort wieder zu


Gruss

Chris
0

#8 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 01. November 2019 - 22:20

A => Windowstaste+R drücken
B => Dialog "Ausführen" geht auf
C => cmd hinschreiben
D => Entertaste betätigen
E => Neues Fenster namens Eingabeaufforderung geht auf
F => mit CD /D <Pfadname> kommt man dahin, wo die Batchdatei liegt, <Pfadname> durch den Pfad aus der Explorer-Adreßzeile ersetzen
G => Entertaste betätigen
H => Den Namen der Batchdatei hinschreiben, so wie er im Explorerfenster dasteht
I => Entertaste betätigen
J => gucken was die Ausgabe ist
K => wenn keine Ausgabe dasteht, die Schritte A bis J gegenprüfen.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#9 Mitglied ist offline   Shannon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 131
  • Beigetreten: 12. Februar 13
  • Reputation: 11
  • Geschlecht:unbekannt

geschrieben 01. November 2019 - 22:38

Aus meinem Fenster rauskopiert oder alten Batch editiert ?
Wie erwähnt, da waren mehrere Fehler drin.

Habe mein's getestet (mit anderem Testpfad) es lief Fehlerfrei durch.

Kommando-Zeile "cmd" ist für Test's immer 1.Wahl (siehe RalphS)

g.s.
0

#10 Mitglied ist offline   casi4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 26. April 19
  • Reputation: 0

geschrieben 01. November 2019 - 22:48

habs hier rauskopiert:(
KOmandozeile zum AUsprobieren gut und schön bei einer Zeile, aber wohl eher nicht bei Schleifen , oder?

Dieser Beitrag wurde von casi4711 bearbeitet: 01. November 2019 - 22:55

0

#11 Mitglied ist offline   Shannon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 131
  • Beigetreten: 12. Februar 13
  • Reputation: 11
  • Geschlecht:unbekannt

geschrieben 02. November 2019 - 17:57

über die cmd nicht die einzelnen Befehle eingeben,
sondern das Batch-File starten.

z.B. "Batchfile.cmd" <Enter>

Die Abarbeitung erfolgt wie mit <Doppel-Klick> gestartet,
nur das cmd-Fenster bleibt im Fehlerfall offen und man kann
die Fehlermeldungen lesen.

g.s.
0

#12 Mitglied ist offline   casi4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 26. April 19
  • Reputation: 0

geschrieben 03. November 2019 - 13:24

achso, das hatte ich bereits schon gemacht, also in der cmd die bat aufgerufen, öffnete sich aber auch nur ganz kurz das Fenster, so kann man schlecht Felhlermeldungen sehen, blöd


Schönen Sonntag


Gruss


chris
0

#13 Mitglied ist offline   Shannon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 131
  • Beigetreten: 12. Februar 13
  • Reputation: 11
  • Geschlecht:unbekannt

geschrieben 03. November 2019 - 16:00

ok,
das File muß mit "exit /b" enden, ansonst beendet sich das cmd-Fenster auch ohne Fehler.

hier mein Test-File:

@echo off
setlocal

set "NET=192.168.178"

for /L %%f in (27, 1, 32) do (
   ping -n 1 %NET%.%%f | findstr /i "TTL" > NUL
   if not errorlevel 1 (
      if exist "C:\Users\" (
         echo %NET%.%%f Archiv Installation vorhanden
      )
      if exist "C:\Users\"  echo Kontrolldirectory  vorhanden
   ) else (
         echo ---------- %NET%.%%f nicht vorhanden
   )
)
  
exit /b




erzeugt diese Ausgabe:
---------- 192.168.178.27 nicht vorhanden
---------- 192.168.178.28 nicht vorhanden
192.168.178.29 Archiv Installation vorhanden
Kontrolldirectory  vorhanden
192.168.178.30 Archiv Installation vorhanden
Kontrolldirectory  vorhanden
---------- 192.168.178.31 nicht vorhanden
---------- 192.168.178.32 nicht vorhanden



29 und 30 sind aktive IP's
wenn es bei dir so nicht geht, dann weiß ich auch nicht weiter

g.s.
0

#14 Mitglied ist offline   casi4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 26. April 19
  • Reputation: 0

geschrieben 04. November 2019 - 22:05

hallo,

jetzt geht es komischerweise, danke vielmals

einen schönen Abend noch


Gruss


chris
0

#15 Mitglied ist offline   casi4711 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 26. April 19
  • Reputation: 0

geschrieben 05. November 2019 - 08:16

Also das läuft nur scheinbar, du hattest jetzt nur c\user abgefragt, dass ist ja überall drauf, wenn ich das Script jetzt anpasse, also mit meinen Verzeichnissen

Zitat

@echo off
setlocal

set "NET=192.168.100"

for /L %%f in (227, 1, 229) do (
ping -n 1 %NET%.%%f | findstr /i "TTL" > NUL
if not errorlevel 1 (
if exist "\\%NET%.%%f\c$\Program Files (x86)\Data\Archiv" (
echo %NET%.%%f Archiv Installation vorhanden
)
if exist "\\%NET%.%%f\c$\reg" echo %NET%.%%f Kontrolldirectory vorhanden
) else (
echo %NET%.%%f nicht vorhanden
)
)
pause



192.168.100.227 nicht vorhanden
192.168.100.229 nicht vorhanden
Drücken Sie eine beliebige Taste . . .

Der PC 28 wird,obwohl an n icht angezeig, dort sind beider Verzeichnisse nicht vorhanden

dann schreibt er bei den Rechnern wo beide Verzeichnisse nicht da sind einfach gar nichts, also er schreibt dort niocht mal die IP


Guten Morgen und Gruss


chris

Dieser Beitrag wurde von casi4711 bearbeitet: 05. November 2019 - 08:23

0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0