wammel
Goto Top

Problem bei Varibaler IP in Pfad Angabe

Hidiho,

ich weiß nicht so recht woran es in meiner Batch hapert..

Also folgende Situation:

Ich probiere mithilfe einer Batch und "net use" auf verschiedene Server im Netzwerk zuzugreifen, was auch solange funktioniert wie ich die entsprechende IP in den Pfad eintrage.

Sobald ich aber eine Variable in den Pfad einsetze bekomme ich den Fehler:

"Systemfehler 53 aufgetreten.
Der Netzwerkpfad wurde nicht gefunden"

Gleichzeitig öffnet er mir aber ein Windows "Anmeldefenster" mit der richtigen IP um auf den festgelegten Ordner "x" zugreifen zu können.

Jetzt würde ich denken, ok es liegt an einem falschen User / Passwort, aber wieso funktioniert es dann bei einer festen IP im Pfad?


net use "\\10.1.1.1\c$\Program Files (x86)\x\" passwort /user:domain\user  
 explorer "\\10.1.1.1\c$\"                                
 net use "\\10.1.1.1\c$\Program Files (x86)\x\" /persistent:no  

- Funktioniert!

 net use "\\%2\c$\Program Files (x86)\x\" passwort /user:domain\user  
 explorer "\\%2\c$\"                                
 net use "\\%2\c$\Program Files (x86)\x\" /persistent:no  

- Funktioniert nicht!
_________________________________________________________________________________

Halbwegs verständlich was ich meine?;)


Euch schonmal Vielen dank fürs durchlesen!

Content-Key: 193471

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

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

Member: MrNetman
MrNetman Oct 29, 2012 at 16:41:13 (UTC)
Goto Top
Hi Wammel,

Welche Form hat den die Variable?
Wir sind es gewohnt die IP in dieser dezimalen Schreibweise zu nutzen.
Übers Netzwerk geht sie aber als HEX in einer Form ähnlich der MAC. Also muss die Definition in der Batch angepasst werden.
Im zweiten Listing fehlt auch die Definition von %2. In welcher Form kommt die denn?

P.S: Bei net use schreibt man persistent in die selbe Zeile.
Das sind wohl keine realen Programmzeilen...

Gruß
Netman
Member: wammel
wammel Oct 30, 2012 at 08:15:34 (UTC)
Goto Top
Hoi,


..aber wenn die IP in HEX übergeben werden muss, wieso wird mir dann eine Eingabeaufforderung mit User/Passwort für das richtige Laufwerk für den richtigen Server eingeblendet?


und doch das sind reale Zeilen, ich füge mal die komplette Batch ein ;)

..falls in der Batch noch irgendetwas keinen Sinn macht oder so, bitte anmerken face-smile

@echo off

echo.
echo.

:abfrage
  set /p eingabe=Bitte Ihre ID eingeben: 
  echo.
  FOR /F "tokens=1-3 delims=;" %%i in (liste.txt) DO CALL :checkline %%i %%j %%k else goto korrektur  


:korrektur
  echo. 
  echo.
  echo Falsche Eingabe! Bitte Ihre ID korrekt eingeben: z.B. 001, 010, 100!
  echo.
  echo.
  goto :abfrage    
  goto :checkline    
  goto :ausgabe 

pause

GOTO :eof

:checkline
  if '%eingabe%' == '%1' CALL :ausgabe %1 %2 %3  
  if '%eingabe%' == '%2' CALL :ausgabe %1 %2 %3  
  if '%eingabe%' == '%3' CALL :ausgabe %1 %2 %3  

GOTO :eof

:ausgabe
  echo ID: %1
  echo Server IP: %2
  echo Ihre Gruppe: %3
  echo.
  echo Stimmen Ihre Daten? - Bitte mit j bestätigen oder mit n neu eingeben.



:Frage
SET /p wahl=
  if /i not '%wahl%' == 'n' (if /i '%wahl%' == 'j' (goto Ja ) ) else goto Nein  
  if defined wahl ECHO ...
  ECHO Antworten Sie Bitte nur mit j für Ja oder n für Neueingabe. 
  


:Ja
echo Ihre Eingaben sind korrekt, Das Update Startet nun!

 
 net use "\\%2\c$\Program Files (x86)\x\" passwort /user:domain/user  
 explorer "\\%2\c$\"                                
 net use "\\%2\c$\Program Files (x86)\x\" /persistent:no  
 tst.bat > Log.txt 2> Errors.txt

 set quellDir=.\

 rem if exist "\\%2\c$\Program Files (x86)\x\unins000.exe" set appDir="\\%2\c$\Program Files (x86)\x"  
 if exist "\\%2\c$\ualoc.inf" set appDir="\\%2\c$\"  

 copy %quellDir%\Test.txt %appDir%\

goto :ende
 
:Nein                               
  echo.
  echo Bitte Ihre ID erneut eingeben:
  echo.
  if '%wahl%' == 'n' goto :abfrage      
  if '%wahl%' == 'n' goto :checkline      
  if '%wahl%' == 'n' goto :ausgabe        

:ende
pause
exit
Member: wammel
wammel Nov 05, 2012 at 05:48:55 (UTC)
Goto Top
..niemand ne Ahnung was ich hier machen kann? ;(
Member: bastla
bastla Nov 11, 2012 at 10:09:21 (UTC)
Goto Top
Hallo wammel!

Wie kommst Du auf die Idee, dass es bei ":Ja" - davor fehlt übrigens noch eine Zeile
goto :Frage
- die Aufrufparameter %1 bis %3 geben sollte (es sei denn, der gesamte Batch wäre damit aufgerufen worden, was ich aber eher nicht annehme) - schließlich wird dieser Programmteil nicht per "call" aufgerufen ...

... aber abgesehen davon (und der syntaktisch nicht sinnvollen Zeile 9): Magst Du kurz erklären, wie dieser Batch eigentlich gemeint wäre (auch hinsichtlich der "liste.txt")?

Grüße
bastla
Member: wammel
wammel Nov 15, 2012 at 15:27:48 (UTC)
Goto Top
Hoi,

naja weil ich diese Parameter oben bei dem FOR festgelegt habe? Das hatte ja auch alles funktioniert ohne Probleme & so wie ich wollte. Es gab ja nur Probleme mit dem netuse, was mittlerweile aber auch funktioniert face-smile

Und zwar habe ich hier:

net use "\\%2\c$\Program Files (x86)\x\" passwort /user:domain/user

einfach den Pfad herrausgenommen und nur:

"\\%2\c$" passwort /user:domain/user

gelassen.

Somit funktioniert es, und ich bekomme mittels der Batch einen nicht permanenten Zugriff auf das jeweilige Laufwerk.


Gemeint ist der Batch so:

Ein User öffnet die Batch, muss seine ID eingeben - mithilfe dieser ID liest die Batch eine IP aus der liste.txt (da es für jede ID unterschiedliche IP´s/Netzlaufwerke gibt) aus und gibt diese weiter an den net use Befehl.

Nachdem hiermit erfolgreich Zugriff auf das Netzlaufwerk besteht werden automatisch einige Daten kopiert vom Netzlaufwerk auf den Rechner des Users kopiert. ( Den Programmteil hiervon habe ich nicht mit eingefügt gehabt ;))


grüßle
Member: bastla
bastla Nov 15, 2012 at 18:30:04 (UTC)
Goto Top
Hallo wammel!
naja weil ich diese Parameter oben bei dem FOR festgelegt habe?
Stimmt - die Konstruktion mit Aufruf des Unterprogramms ":ausgabe" aus dem Unterprogramm ":checkline" ist sensationell, war mir aber vorher gar nicht aufgefallen - mich hatte die "goto"-Serie nach der Zeile 9 und der weitere Ablauf ab ":ausgabe" (nach dem Motto "they never come back") zu sehr fasziniert ... face-wink

Grüße
bastla