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-Key: 48938

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

Printed on: April 19, 2024 at 11:04 o'clock

Member: AxelHahn
AxelHahn Jan 16, 2007 at 12:54:21 (UTC)
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 =-
Member: flash-gordon
flash-gordon Jan 16, 2007 at 13:41:21 (UTC)
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
Member: Biber
Biber Jan 16, 2007 at 14:05:54 (UTC)
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
Member: AxelHahn
AxelHahn Jan 16, 2007 at 14:09:38 (UTC)
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 =-
Member: flash-gordon
flash-gordon Jan 16, 2007 at 14:16:22 (UTC)
Goto Top
NIX!

Liefert nix rein gar nix!
Member: Biber
Biber Jan 16, 2007 at 14:25:57 (UTC)
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
Member: flash-gordon
flash-gordon Jan 16, 2007 at 14:41:55 (UTC)
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 =-
Member: Biber
Biber Jan 16, 2007 at 14:46:51 (UTC)
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.
Member: flash-gordon
flash-gordon Jan 16, 2007 at 15:15:29 (UTC)
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.

Member: Dani
Dani Jan 16, 2007 at 15:44:26 (UTC)
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
Member: flash-gordon
flash-gordon Jan 16, 2007 at 16:20:15 (UTC)
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
Member: Dani
Dani Jan 16, 2007 at 16:22:48 (UTC)
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