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

Batchdatei zum Kopieren von Verzeichnissen bzw. Ordnern verbessern...

Frage Entwicklung Batch & Shell

Mitglied: pschsch

pschsch (Level 1) - Jetzt verbinden

19.07.2007, aktualisiert 23.07.2007, 5195 Aufrufe, 6 Kommentare

Hinzufügen von Variablen

Ich benutze folgende Batchdatei zum Kopieren von Ordnern, die ich auf CMD- (veraltet: DOS-) Ebene aufrufe:

if "%1"=="" goto fehler

for %%c in (r1pc01 r1pc02 r1pc03) do md X:\Schueler\EDVRaum1\%%c\%1
for %%c in (r1pc01 r1pc02 r1pc03) do xcopy %1 X:\Schueler\EDVRaum1\%%c\%1 /s/e/v
goto ende

:fehler
cls
echo Verzeichnisname wurde nicht eingegeben!

:ende
pause

Die Datei funktioniert nur dann, wenn sich die Batchdatei im selben Ordner wie das zu kopierende Verzeichnis befindet.

Gibt es eine Möglichkeit, von dem Speicherort der Batchdatei aus Quellordner und Zielordner separat einzugeben, so dass ich die Datei nicht immer umkopieren muss?

Kennt jemand ein Programm oder Skript, das diese Aufgabenstellung erledigt? (Bei Dateien arbeite ich mit WiNAss.exe von ALP Dillingen.)
Mitglied: bastla
19.07.2007 um 11:49 Uhr
Hallo pschsch!

Du könntest für den Ordner beim Aufruf (auch zB per Drag&Drop auf die Batchdatei) den vollen Pfad übergeben und den (letzten!) Ordnernamen mit %~n1 (anstatt %1) isolieren (ist eigentlich für Dateien gedacht, aber für MS ist in diesem Fall alles, was nach dem letzten "\" steht eine "Datei").

Grüße
bastla
Bitte warten ..
Mitglied: Biber
19.07.2007 um 13:18 Uhr
Moin pschpsch,

Du bist in besten Händen, deshalb nur OffTopic als Fussnote:
  • Dein Beitrag gehört nach "Batch & Shell" und nicht nach "Windows". Ich verschiebe ihn.
  • STREICHE: "die ich auf DOS-Ebene aufrufe"; SETZE "die ich auf CMD-Ebene aufrufe".

Unter DOS ließe sich die Syntax nur rudimentär verwenden.
Und hin und wieder haben wir noch Fragen, die sich (eher) auf eine DOS-Syntax beziehen - diese können das nicht abtippen, was oben steht.

Wenn Du hin und wieder im EDV am Pult stehst, solltest Du schon zwischen DOS-Prompt und CMD-Prompt unterscheiden...

Hoffe, der Groschen....äääh...das 10-Cent-Stück ist gefallen.

Grüße
Biber
Bitte warten ..
Mitglied: maneich
21.07.2007 um 16:24 Uhr
Hallo,

so wie ich das sehe, dürfte die Lösung für DOS- und CMD-Ebene die gleiche sein.

if "%1"=="" goto fehler
set x=Laufwerk:\Verzeichnispfad\

:: for %%c in (r1pc01 r1pc02 r1pc03) do md X:\Schueler\EDVRaum1\%%c\%1
for %%c in (r1pc01 r1pc02 r1pc03) do xcopy %x%%1 X:\Schueler\EDVRaum1\%%c /s/e/v
goto ende

Damit kann die Batch eigentlich von überall ausgeführt werden.

MfG maneich
Bitte warten ..
Mitglied: pschsch
23.07.2007 um 08:05 Uhr
@bastla
Habe deine überarbeitete Batchdatei ausprobiert mit "drag and drop" und hat bestens funktioniert. Vielen Dank für die wirklich tolle Hilfe!
Bitte warten ..
Mitglied: pschsch
23.07.2007 um 08:08 Uhr
@maneich
Wie muss ich jetzt "set x=Laufwerk:\Verzeichnispfad\" belegen? Kannst du's mal am Beispiel erläutern?
Bitte warten ..
Mitglied: maneich
23.07.2007 um 11:11 Uhr
Hallo,

nun ja, Du mußt hier die Adresse (Hauptverzeichnis) angeben, in der die Verzeichnisse der For-Schleife liegen.

z.B.: set x="C:\Eigene Dateien\Test\"

MfG maneich
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Ausgelagerte Variablen in Batchdatei (6)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
Batchdatei auf einem Server ausführen mit psexec.exe (14)

Frage von imebro zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...