Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
erzeugen eines ordner per batch: "Zugriff verweigert"
Animal21
myCSharp.de - Member



Dabei seit:
Beiträge: 144

Themenstarter:

erzeugen eines ordner per batch: "Zugriff verweigert"

beantworten | zitieren | melden

Hallo leute,

Ich möcht gern am monatsende einen ordner, der einige txt, xml, js ... datein enthält von einem server (intranet) auf meine externe platte kopieren und so sichern.
das ganze soll in einer batch datei geschehen, in der ziel und quell ordner veränderbar sind.

hier mein ansatz:

@echo off

set src = K:\NetWork\test1\
set ziel = K:\NetWork\test2\

if not exist %ziel%\ mkdir %ziel%\
 
cd %src%\

//Hier die forschleife, wobei ich aber nicht weis wie ich die gestalten muss, damit sie alle datein in dem ordner (plus unterordner) in den zielordner kopiert

echo Dateien kopiert!!!


mein erstes problem war nun, dass
1. mkdir %ziel%\ einen fehler auslöst - "Zugriff verweigert", was aber schwachsinn ist, da ich die rechte habe und ich habs auch in der cmd probiert, da geht es einwandfrei
2. springt er nie in den "if not" pfad, obwohl der ordner nicht existiert (hab erstens außerhalb von der if abfrage getestet...)


bitte sagt mir was falsch ist und wie die schleife aussehen müsste

mfg
ani


danke schonmal
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Animal21 am .
private Nachricht | Beiträge des Benutzers
Xand0r
myCSharp.de - Member

Avatar #avatar-2849.png


Dabei seit:
Beiträge: 82
Herkunft: Essen

beantworten | zitieren | melden

1. Musst du die Leerzeichen bei der Variablendeklaration nach dem Gleichheitszeichen entfernen, da er das erste Zeichen nach dem Gleich als Anfang des Wertes nimmt und bei einem Leerzeichen gibts einen Fehler, also

set src=K:\NetWork\test1\
set ziel=K:\NetWork\test2\

2. Was du suchst ist der xcopy-Befehl (dann brauchst du auch keine For-Schleife), also sähe die Batch-Datei wie folgt aus:

@echo off

set src=K:\NetWork\test1\
set ziel=K:\NetWork\test2\

if not exist %ziel% mkdir %ziel%

xcopy %src% %ziel% /e

echo Dateien kopiert!
Diskordianer schwimmen nicht gegen den Strom - sie klettern aus dem Fluss!
Ein Mathematiker ist ein Mensch, der einen ihm vorgetragenen Gedanken nicht nur sofort versteht, sondern auch weiß auf welchem Denkfehler er beruht
private Nachricht | Beiträge des Benutzers
eveN
myCSharp.de - Member



Dabei seit:
Beiträge: 107
Herkunft: Bielefeld

beantworten | zitieren | melden

hab etwas ähnliches auch mit xcopy realisiert.

Für die Bedeutung der Parameter ( z.B. /e ) gibts u.a. HIER eine kurze Übersicht.
Ich lasse mich gerne korrigieren! (:
private Nachricht | Beiträge des Benutzers
Xand0r
myCSharp.de - Member

Avatar #avatar-2849.png


Dabei seit:
Beiträge: 82
Herkunft: Essen

beantworten | zitieren | melden

Oder auch ganz einfach, in der Windows-Hilfe mal nach "Befehlszeilenreferenz" suchen, da bekommst du auch ne Übersicht über aller Befehle und Parameter mit Beispielen.
Diskordianer schwimmen nicht gegen den Strom - sie klettern aus dem Fluss!
Ein Mathematiker ist ein Mensch, der einen ihm vorgetragenen Gedanken nicht nur sofort versteht, sondern auch weiß auf welchem Denkfehler er beruht
private Nachricht | Beiträge des Benutzers
Animal21
myCSharp.de - Member



Dabei seit:
Beiträge: 144

Themenstarter:

beantworten | zitieren | melden

danke, wenigstens wird nun der ordner erstellt ^^

aber es kopiet nix, ich benutz vistas, gibts es da vll einen anderen oder irgendwelche probleme?

@echo off

set src=K:\NetWork\test1\
set ziel=K:\NetWork\test2\

if not exist %ziel% mkdir %ziel%

echo Kopiere...
xcopy %src% %ziel% /e

cls
echo Dateien kopiert!
pause > nul

mfg
ani
private Nachricht | Beiträge des Benutzers
Xand0r
myCSharp.de - Member

Avatar #avatar-2849.png


Dabei seit:
Beiträge: 82
Herkunft: Essen

beantworten | zitieren | melden

Also auch unter Vista funktioniert xcopy definitiv.
Nimm mal das @echo off raus und guck mal, was er dir da ausgibt.
Diskordianer schwimmen nicht gegen den Strom - sie klettern aus dem Fluss!
Ein Mathematiker ist ein Mensch, der einen ihm vorgetragenen Gedanken nicht nur sofort versteht, sondern auch weiß auf welchem Denkfehler er beruht
private Nachricht | Beiträge des Benutzers
Animal21
myCSharp.de - Member



Dabei seit:
Beiträge: 144

Themenstarter:

beantworten | zitieren | melden

danke leute
funktioniert alles


mfg
ani

@echo off

echo Pfad: %CD%

set src="%CD%"\Copy
set ziel="%CD%"\Copy2

if not exist %ziel% mkdir %ziel%

echo Kopiere...
xcopy %src% %ziel% /e /y


echo Dateien kopiert!...
pause > nul
private Nachricht | Beiträge des Benutzers
TheBrainiac
myCSharp.de - Member

Avatar #avatar-3152.png


Dabei seit:
Beiträge: 795
Herkunft: /dev/null

beantworten | zitieren | melden

Hi,

RoboCopy könnte das sein, was du súchst. Kann imho sogar inkrementelle Sicherung.

Gruß, Christian.
There are 10 types of people in the world:
Those, who think they understand the binary system
Those who don't even have heard about it
And those who understand "Every base is base 10"
private Nachricht | Beiträge des Benutzers
Xand0r
myCSharp.de - Member

Avatar #avatar-2849.png


Dabei seit:
Beiträge: 82
Herkunft: Essen

beantworten | zitieren | melden

Stimmt, der y-Parameter ist natürlich auch sinnvoll ^^
Diskordianer schwimmen nicht gegen den Strom - sie klettern aus dem Fluss!
Ein Mathematiker ist ein Mensch, der einen ihm vorgetragenen Gedanken nicht nur sofort versteht, sondern auch weiß auf welchem Denkfehler er beruht
private Nachricht | Beiträge des Benutzers