flash-gordon
Goto Top

Batch zum Prüfen von Dateiexistenz funktioniert nicht / Win XP

Hallo,

nach Suche hier und anderswo, kann ich mir nict erklären warum ich mit:

@ECHO OFF

FOR /f %%i in (C:\prog\antivir_check\servers.txt) DO Call DIR \\%%i\c$\systools\inst\Symantec_mig.flg /s/B 

>c:\prog\antivir_check\log\%%i.log


ECHO.
GOTO :EOF
:EOF

nicht die Dateiexistenz der Computer in meiner Servers.txt überprüfen kann.
Das Skript macht nix!

Weiss hier evtl. jemand warum?

gracias

Content-ID: 48938

Url: https://administrator.de/forum/batch-zum-pruefen-von-dateiexistenz-funktioniert-nicht-win-xp-48938.html

Ausgedruckt am: 24.12.2024 um 13:12 Uhr

AxelHahn
AxelHahn 16.01.2007 um 13:54:21 Uhr
Goto Top
Hallo,

das call wird mit dem cmd-internen Kommando dir nicht gehen wollen.
Schreibe doch testweise ein echo vor deinen Befehl:

FOR /f %%i in (C:\prog\antivir_check\servers.txt) DO (
    echo %%i
    dir \\%%i\c$\systools\inst\Symantec_mig.flg /s/B >c:\prog\antivir_check\log\%%i.log
)


Viele Grüsse
-= Axel =-
flash-gordon
flash-gordon 16.01.2007 um 14:41:21 Uhr
Goto Top
Klappt auch nicht! face-sad

also wenn ich %%i gegen einen bestimmten Computernamen austausche und das ganze direkt über die command line reinhacke, klappts.

Aber wiese will er %%i als Variable net!? face-sad
Biber
Biber 16.01.2007 um 15:05:54 Uhr
Goto Top
Moin flatsch,

was liefert denn ein
FOR /f %i in (C:\prog\antivir_check\servers.txt) DO @echo %i

..von der Konsole?

Gruß
Biber
AxelHahn
AxelHahn 16.01.2007 um 15:09:38 Uhr
Goto Top
Hi,


... dann prüfe nochmal die zu lesende Datei:

set serverfile=C:\prog\antivir_check\servers.txt
type %serverfile%
FOR /f %%i in (%serverfile%) DO (
    echo %%i
    dir \\%%i\c$\systools\inst\Symantec_mig.flg /s/B >c:\prog\antivir_check\log\%%i.log
)

Wirf am Anfang das echo off raus und starte deine Batch auf Kommandozeile, um etwaige Fehler zu sehen.


Viele Grüsse
-= Axel =-
flash-gordon
flash-gordon 16.01.2007 um 15:16:22 Uhr
Goto Top
NIX!

Liefert nix rein gar nix!
Biber
Biber 16.01.2007 um 15:25:57 Uhr
Goto Top
NIX!

Liefert nix rein gar nix!
Dann ist das Ergebnis doch richtig.. face-wink

Dann bitte ein "Type dateiname auf die Datei oder im Text-Editor aufmachen....
...denn es ist wohl der Name oder Pfad falsch.

Gruß
Biber
flash-gordon
flash-gordon 16.01.2007 um 15:41:55 Uhr
Goto Top
Also Axels Ausführung ergibt das hier:

c:\>type %serverfile%
s273c001
c:\>FOR /f %i in %serverfile% DO (
C:\prog\antivir_check\servers.txt was unexpected at this time.

c:\> echo %i
%i

c:\> dir \\%i\c$\systools\inst\Symantec_mig.flg /s/B >c:\prog\antivir_check\log\%i.log
The network path was not found.


Er liest also den Namen (s273c001) aus der servers.txt, gibt ihn aber net weiter. Ich dreh durch.

Hi,


... dann prüfe nochmal die zu lesende
Datei:

> set
> serverfile=C:\prog\antivir_check\servers.txt
> type %serverfile%
> FOR /f %%i in (%serverfile%) DO (
>     echo %%i
>     dir
> \\%%i\c$\systools\inst\Symantec_mig.flg /s/B
> >c:\prog\antivir_check\log\%%i.log
> )
> 

Wirf am Anfang das echo off raus und starte
deine Batch auf Kommandozeile, um etwaige
Fehler zu sehen.


Viele Grüsse
-= Axel =-
Biber
Biber 16.01.2007 um 15:46:51 Uhr
Goto Top
Das schränkt doch die Fehlerursachen ein:
- entweder Du hast ein Leerzeichen vor oder nach dem Servernamen
- oder der Benutzer, der den Batch ausführt hat keine Rechte auf c$ auf diesem Rechner.
Die erste Mäglichkeit kannst Du prüfen, indem Du ein "echo" vor das "dir" setzt.
flash-gordon
flash-gordon 16.01.2007 um 16:15:29 Uhr
Goto Top
Ein leerzeichen ist nicht drin, er liefert das hier:

dir \\%%i\c$\systools\inst\Symantec_mig.flg /s/B

Berechtigungen sind ok. Ich kann ja übern explorer auf alle C$`s der Domain zugreifen.

ICH VERSTEH DAS NICHT!!!!

Das schränkt doch die Fehlerursachen
ein:
- entweder Du hast ein Leerzeichen vor oder
nach dem Servernamen
- oder der Benutzer, der den Batch
ausführt hat keine Rechte auf c$ auf
diesem Rechner.
Die erste Mäglichkeit kannst Du
prüfen, indem Du ein "echo"
vor das "dir" setzt.

Dani
Dani 16.01.2007 um 16:44:26 Uhr
Goto Top
Hi,
also ich habe es bei mir mal getestet. Zwar nicht mit deinem Pfad bzw. Ordner aber bei mir geht's!

servers.txt
test
test2

batch:
@ECHO off
SET serverfile=C:\servers.txt

FOR /f %%i IN ('TYPE "%serverfile%"') DO (  
    ECHO %%i
    DIR "\\%%i\c$\temp" /s /b >> c:\%%i.log  
)


Gruß
Dani
flash-gordon
flash-gordon 16.01.2007 um 17:20:15 Uhr
Goto Top
WAHNSINN:

@echo off
SET serverfile=C:\prog\antivir_check\servers.txt

FOR /f %%i IN ('TYPE "%serverfile%"') DO (
ECHO %%i
dir "\\%%i\c$\systools\inst\Symantec_mig.flg" /s /b >> c:\prog\antivir_check\log\%%i
)


FUNKTIONIERT! DIE ' ' waren es!!!

DANKE!

Hi,
also ich habe es bei mir mal getestet. Zwar
nicht mit deinem Pfad bzw. Ordner aber bei
mir geht's!

servers.txt
> test
> test2
> 

batch:
> @ECHO off
> SET serverfile=C:\servers.txt
> 
> FOR /f %%i IN ('TYPE  
> "%serverfile%"') DO (  
>     ECHO %%i
>     DIR "\\%%i\c$\temp" /s /b  
> >> c:\%%i.log
> )
> 


Gruß
Dani
Dani
Dani 16.01.2007 um 17:22:48 Uhr
Goto Top
Hi,
lol...siehts mal was die kleinen Dinger wieder ausmachen. face-wink

Bitte den Thread als "gelöst" markieren. Dazu oben bei der Problembeschreibung auf editieren klicken und den entsprechenden Hacken setzen. Danke...


Gruß
Dani