Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ordner kopieren

Frage Entwicklung Batch & Shell

Mitglied: FreakyF

FreakyF (Level 2) - Jetzt verbinden

14.05.2007, aktualisiert 16.05.2007, 7441 Aufrufe, 15 Kommentare

Hallo!

Ich will über eine Batch verschiedene Ordner kopieren.
In die Batch soll man Quelle und Ziel eingeben können.

Warum funktioniert mein Programm nicht?



Set /P Quelle ="Geben Sie bitte die Quelle ein : "
Set /P Ziel ="Geben Sie bitte das Ziel ein : "


xcopy /s /d /y %Quelle% %Ziel%




Danke


Markus
Mitglied: Dynadrate
14.05.2007 um 23:05 Uhr
Die Parameter müssen (laut xcopy /?) ans Ende gestellt werden
Bitte warten ..
Mitglied: AdminDash
14.05.2007 um 23:17 Uhr
Hi,

den Parameter /D muss ein Datumsformat folgen.
Ruf mal help xcopy, da siehste es. /D:M-T-J

Daher läuft Deine Batch noch niicht.


Wenn man übrigens die Parameter vor oder nach dem Befehl setzt kommen auch unterschiedliche Ergenbisse raus. Beispiel:
xcopy /s /e /y c:\temp d:\temp wird nachgefragt obs ein Dateiname oder ein Verzeichnis sein soll. xcopy c:\temp d:\temp /e /s /y erstellt gleich ein Verzeichnis auf D: und kopiert mittels Parameter s und e alles rein.

Gruß AdminDash
Bitte warten ..
Mitglied: AdminDash
14.05.2007 um 23:30 Uhr
Nachbrenner ;)

set /P Quelle="Quelle angeben :"
set /P Ziel="Ziel angeben :"
echo V| xcopy /S /E /Y %Quelle% %Ziel%

so klappts dann auch ohne Nachfrage aus einer Batch. Bitte auch die Abstände zwischen den = beachten. Bei Dir sind immer welche drin. Wenn die drin sind dann kommt beim Aufruf von set folgendes raus:
Quelle =c:\temp
Ziel =d:\temp

raus.
Sind die Leerzeichen weg stimmt auch der set Aufruf.

Gruß AdminDash
Bitte warten ..
Mitglied: miniversum
15.05.2007 um 08:24 Uhr
Also ich würde das so lassen. Die Parameter ans Ende aber sonst ok.
Das /d ohne Datum ist auch ok je nach Anwendungsfall. Ich gehe jetzt mal davon aus das du Bewusst diese Parameter gewählt hast und weist wa ssie bewirken. Drum will ich auch daran ncith rumdrehen.
Vondaher würd ichs da so machen:
Set /P Quelle ="Geben Sie bitte die Quelle ein : "
Set /P Ziel ="Geben Sie bitte das Ziel ein : "
xcopy %Quelle% %Ziel% /s /d /y

miniversum
Bitte warten ..
Mitglied: FreakyF
15.05.2007 um 08:33 Uhr
set /P Quelle="Quelle angeben :"
set /P Ziel="Ziel angeben :"
echo V| xcopy /S /E /Y %Quelle% %Ziel%

/d ist für meinen Anwendungsfall wichtig. Warum brauch ich /e?
Er kopiert doch trotzdem die Unterverzeichnisse, oder?
Bitte warten ..
Mitglied: FreakyF
15.05.2007 um 08:42 Uhr
> Set /P Quelle ="Geben Sie bitte
die Quelle ein : "
> Set /P Ziel ="Geben Sie bitte das
Ziel ein : "
> xcopy %Quelle% %Ziel% /s /d /y

Bei mir funktioniert dieser Vorschlag leider nicht...
Batch bricht einfach ab ohne zu kopieren.
Bitte warten ..
Mitglied: FreakyF
15.05.2007 um 08:45 Uhr
Bei mir funktioniert es so:

set /P Quelle="Quelle angeben :"
set /P Ziel="Ziel angeben :"
echo V| xcopy /S /D /Y %Quelle% %Ziel%


Kann mir jemand den Sinn von V| erklären?
Bitte warten ..
Mitglied: bastla
15.05.2007 um 09:25 Uhr
Hallo FreakyF!

Damit wird vorweg die beliebte Frage
01.
Ist das Ziel D:\Test ein Dateiname 
02.
oder ein Verzeichnisname 
03.
(D = Datei, V = Verzeichnis)?
beantwortet. Einfacher ginge es mit dem Schalter /I.

Grüße
bastla
Bitte warten ..
Mitglied: FreakyF
15.05.2007 um 13:23 Uhr
/S und /E ist doch ein Widerspruch, oder?

Ich versteh den Sinn von /I nicht.
XCOPY kopiert doch fehlende Ordner auch ohne /I.
Warum soll man also /I verwenden?
Bitte warten ..
Mitglied: miniversum
15.05.2007 um 15:02 Uhr
/E beinhaltet /S ist also kein Widerspruch sondern eigentlich nur zuviel.
Beim set /p hast du hinter den Variabeln ein Leerzeichen. Das muß weg.
Also so das Ganze:
Set /P Quelle="Geben Sie bitte die Quelle ein : "
Set /P Ziel="Geben Sie bitte das Ziel ein : "
xcopy %Quelle% %Ziel% /s /d /y
Kannst ja mal noch drüber nachdenken die Letzte Zeile so abzuändern:
xcopy "%Quelle:"=%" "%Ziel:"=%" /s /d /y

miniversum
Bitte warten ..
Mitglied: bastla
15.05.2007 um 15:47 Uhr
Hallo FreakyF!

XCOPY kopiert doch fehlende Ordner auch ohne /I.
Warum soll man also /I verwenden?
Damit die oben dargestellte Frage ... (D = Datei, V = Verzeichnis)? bei einem nicht existierenden Zielverzeichnis sozusagen von xcopy selbst mit "V" beantwortet wird. Vergleiche
01.
xcopy /I C:\WINDOWS\Media C:\MediBak
mit
01.
xcopy C:\WINDOWS\Media C:\MediBack
(Ich gehe natürlich davon aus, dass weder C:\MediBak noch C:\MediBack bereits vorhanden sind.)

Grüße
bastla
Bitte warten ..
Mitglied: FreakyF
15.05.2007 um 17:58 Uhr
/E beinhaltet /S ist also kein Widerspruch
sondern eigentlich nur zuviel.
Beim set /p hast du hinter den Variabeln ein
Leerzeichen. Das muß weg.
Also so das Ganze:
> Set /P Quelle="Geben Sie bitte die
Quelle ein : "
> Set /P Ziel="Geben Sie bitte das
Ziel ein : "
> xcopy %Quelle% %Ziel% /s /d /y

Super das funktioniert!

Kannst ja mal noch drüber nachdenken
die Letzte Zeile so abzuändern:
> xcopy "%Quelle:"=%"
"%Ziel:"=%" /s /d /y

miniversum

Was für einen Vorteil bringt mir diese Variante?
Bitte warten ..
Mitglied: Biber
15.05.2007 um 18:39 Uhr
Anmerkung: zur Demo reicht auch
xcopy /L C:\WINDOWS\Media C:\MediBack
-bzw.-
xcopy /L /i C:\WINDOWS\Media C:\MediBak

...dann hat man/frau nicht so viel wegzukehren hinterher.

Gruß
Biber
Bitte warten ..
Mitglied: miniversum
15.05.2007 um 18:46 Uhr
du könntest auch Ordnernamen eingeben mit leerzeichen ohne siein anführungszeichen setzen zu müssen.

miniversum
Bitte warten ..
Mitglied: FreakyF
16.05.2007 um 12:13 Uhr
Ok jetzt hab ich /i verstanden

Danke^^
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...