andr3000
Goto Top

XCOPY Hilfe bei Batch

weiß net weiter

Hallo an alle

habe eine BAT Datei

ich will eine datei kopieren als Bsp: xyz.ini

de kommt auf einen Server.Dort legt er die IP Adresse im Ordner so wie es soll vom PC!
Problem ist nur das es bei einigen C:\Programme\ ist und bei anderen C:\Program Files\
also insgesammt 4 Quellen :D je nachdem ob englisch oder Deutsch oder neue Software!

meine bat sieht ca so aus ( ohne die ordner erstellungs-Befhel für IP)

REM von WO soll gesichert werden?
REM --------------------------------------
set quelle="C:\Programme\Software\ini" if not exist goto set
:set
set quelle="C:\Program Files\Software\ini" if not exist goto set1
:set1
set quelle="C:\Programme\Software1\ini"


REM WOHIN sollen die Daten kopiert werden?
REM --------------------------------------
Set ziel=\\serverxy\software\%IP%\


REM -----------------------------Kopiervorgang------------------------------------
set fehler=0

xcopy /i /y /v /q %quelle%\xyz.ini %ziel%
if ERRORLEVEL 1 (set /a fehler=%fehler%+1)


Das Problem ist nur er findet die xyz.ini nicht wenn es net zufällig c:\Programme\software ist.
Er lässt die anderen Quellen einfach komplett aus!
Was kann i da machen?

Content-Key: 191377

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

Ausgedruckt am: 28.03.2024 um 23:03 Uhr

Mitglied: Fidel83
Fidel83 18.09.2012 um 07:14:49 Uhr
Goto Top
Guten Morgen

Die Ordnerhierarchie existiert aber schon? Du hast in jedem Software-Ordner einen Unterordner namens ini?

Setzt doch an das Ende der batch-File ein Pause und schau es dir die Ausgabe mal an. Deine ersten beiden Quellen wird er nicht finden, ergo geht er zu set1. Dort sucht er dann.

xcopy /i /y /v /q "C:\Programme\Software1\ini"\xyz.ini \\serverxy\software\%IP%\
Datei xyz.ini nicht gefunden.
0 Datei(en) kopiert

So sollte deine Ausgabe dann in etwa aussehen.

Prüf das doch mal und gib gegebenfalls die Ausgabe hier preis, falls du mit dieser nicht klar kommst.

LG
Mitglied: 2hard4you
2hard4you 18.09.2012 aktualisiert um 08:02:11 Uhr
Goto Top
Moin,

gib mal am Commandprompt auf Deinen verschiedenen Versionen den Befehl set ein - die jeweils linke Seite sind Variablen, die Du auch verwenden kannst - Deine heißt (weil Du kein OS hinzugeschrieben hast) wahrscheinlich ProgramFiles (und ist in Deutsch und Englisch gleich)

Gruß

24
Mitglied: bastla
bastla 18.09.2012 um 08:09:31 Uhr
Goto Top
Hallo andr3000!

Einfach richtige "if" verwenden face-wink - Dein (ohne passende Formatierung gepostetes) Beispiel ist (sogar, wenn das jeweilige "if" in einer eigenen Zeile stünde) logisch und syntaktisch falsch - grundsätzlich (aber ungetestet face-wink) könnte das etwa so aussehen:
REM von WO soll gesichert werden?
REM --------------------------------------
set "quelle=C:\Programme\Software\ini"  
if exist "%quelle%" goto :Kopieren  
set "quelle=C:\Program Files\Software\ini"  
if exist "%quelle%" goto :Kopieren  
set "quelle=C:\Programme\Software1\ini"  
if exist "%quelle%" goto :Kopieren  
echo Quelle nicht gefunden!
goto :eof

:Kopieren
REM WOHIN sollen die Daten kopiert werden?
REM --------------------------------------
Set "ziel=\\serverxy\software\%IP%\"  

REM -----------------------------Kopiervorgang------------------------------------
set fehler=0
xcopy /yq "%quelle%\xyz.ini" "%ziel%" || set /a fehler+=1  
Grüße
bastla
Mitglied: Raven42
Raven42 18.09.2012 um 13:08:58 Uhr
Goto Top
Oder Du nimmst die bereits vorhandene Variable %ProgramFiles% ...