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

Verzeichnisse mit Inhalt kopieren-pfad mit Variable füllen

Frage Entwicklung Batch & Shell

Mitglied: Maniacsurvivor

Maniacsurvivor (Level 1) - Jetzt verbinden

07.03.2012 um 15:18 Uhr, 3316 Aufrufe, 3 Kommentare

Sehr geehrte Mittglieder von administrator.de

Ich bin neu im Forum und ich habe ein Problem mit Batch, dass ich nicht lösen kann.
Hoffentlich könnt ihr mir helfen.

Gerne möchte ich aus mehren Verzeichnissen einen bestimmten Ordner kopieren und dessen Struktur übernehmen.
Das Problem ist folgendes:.. /ordner/1/meinziel
../ordner/2/meinziel
../ordner/3/meinziel

Ich möchte gerne aus den Verzeichnissen 1,2,3 usw. den Ordner meinziel kopieren. In den Verzeichnissen 1,2,3 usw. gibt es aber nicht nur den Ordner mein Ziel,
sondern auch noch andere Inhalte, ansonsten hätte ich einfach alles nach /ordner/ kopieren können.

In der Batch kann ich nicht einfach ../ordner/1/meinziel schreiben, denn der Inhalt unter /ordner/ wird ständig aktualisiert bzw. erneuert.
Deshalb muss 1,2,3 usw. in eine Variable schreiben. Der Inhalt der Variable sollte aus einer Textdatei genommen werden, in der die Verzeichnisse
1,2,3 usw. untereinander stehen, wenn ich die .txt öffne siehte es so aus:1
2
3

Diese .txt erstelle ich automatisch im Batch-File und lösche es später wieder.

Nun sollten alle Inhalte kopiert werden in folgender Form: .../ordner/%variable%/meinziel nach ;;;/ordner/%variable%/meinziel
Die Variable sollte hochgezählt werden bis es nach1,2,3... nicht mehr gibt.

Bis Jetzt habe ich folgendes(das meiste habe ich auskomentiert, habe ein grosses Durcheinander):


@ECHO OFF
REM Ein Script, dass Dateien aus dem Kundenverzeichnissen kopiert.

REM Eine Liste wird erstellt mit allen Kundenordner
cd C:\Users\pm.HRMS\Desktop\Test\von\
dir /b > C:\Users\pm.HRMS\Desktop\Test\infos.txt

REM Variable kundenname wird hier gesetzt
REM set var_token=1
REM FOR /F " tokens=%var_token% delims=" %%i in (C:\Users\pm.HRMS\Desktop\Test\infos.txt) do (
REM set var_kundenname=%%i
REM )
REM echo %var_kundenname%

REM Die Anzahl der gesamten Zeilen aus infos.txt wird ermittelt und in der Variable %Anzahl% gespeichert
::for /f "delims=:" %%a in ('findstr . infos.txt^|findstr /n "^"') do set /a Anzahl=%%a

REM Mit findstr finde ich eine bestimmte Zeile Heraus, diese sollte dann in eine Variable gespeichert werden.
REM Die Zahlen 1,2,6 werden noch durch Variablen ersetzt ( 1 = welche Zeile ; 2 = Grösse der Sprünge ; 6 = Anzahl der Zeilen )
REM echo %%j muss noch ersetzt werden ( Wert nur als Variable speichern )
::for /f "tokens=1,* delims=:" %%i in ('findstr /n $ C:\Users\pm.HRMS\Desktop\Test\infos.txt') do @(
::for /L %%a in (1,2,6 do @if %%i==%%a @echo %%j
REM )

REM keine Ahnung...habe ich kopiert
:: FOR /f %%f IN (C:\Users\pm.HRMS\Desktop\Test\infos.txt) DO echo %%f

REM start und ziel werden als Variable gespeichert, * muss noch durch Variable ersetzt werden
::SET start=C:\Users\pm.HRMS\Desktop\Test\von\*\VertraegeMandate\*
::SET ziel=C:\Users\pm.HRMS\Desktop\Test\nach\*\VertraegeMandate\

REM Der Copy Befehl findet hier statt
::xcopy "%start%" "%ziel%" /s/d/y

PAUSE






Bitte helft mir, ich bedanke mich schon im Vorhinein
Mitglied: bastla
07.03.2012 um 15:49 Uhr
Hallo Lunalumen und willkommen im Forum!

Wenn Du, wie ich es interpretiere, ja eigentlich nur eine "Parallel-Struktur" für die "VertraegeMandate"-Ordner erstellen willst, könnte das (ungetestet) etwa so gehen:
01.
@echo off & setlocal 
02.
set "Quelle=C:\Users\pm.HRMS\Desktop\Test\von" 
03.
set "Ziel=C:\Users\pm.HRMS\Desktop\Test\nach" 
04.
set "Ordner=VertraegeMandate" 
05.
 
06.
for /d %%i in ("%Quelle%\*") do if exist "%%i\%Ordner%" xcopy /sdy "%%i\%Ordner%" "%Ziel%\%%~nxi\%Ordner%\" >nul
Grüße
bastla
Bitte warten ..
Mitglied: Maniacsurvivor
07.03.2012 um 15:56 Uhr
WOW hat super funktioniert, vielen Dank
Bitte warten ..
Mitglied: 60730
07.03.2012 um 19:45 Uhr
Serus und auch von mir ein "fühl dich hier wohl"

Zitat von Maniacsurvivor:
WOW hat super funktioniert, vielen Dank

Kann dann dieser grüne Haken dran?

Ps: @ECHO OFF &
und ich habe ein Problem mit Batch, dass ich nicht lösen kann
  • sind zwei Sachen, die wir hier wirklich zu oft lesen dürfen.
Der "einzige", der hier ungestraft €cho off Batche schreiben darf ist der werte Bastla, denn der hat kein Probleme mit Batchen
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Nach bestimmten Ordner namen suchen und in einem anderem Pfad kopieren (8)

Frage von erdgnrft zum Thema Batch & Shell ...

Windows Server
Inhalt aus alter Domain in neue ohne vertrauensstellung (5)

Frage von red-ed zum Thema Windows Server ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (15)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

ISDN & Analoganschlüsse
gelöst Splitter - RJ45 zu RJ11? (14)

Frage von Waishon zum Thema ISDN & Analoganschlüsse ...

Rechtliche Fragen
Hotspot rechtssicher betreiben? (14)

Frage von xSiggix zum Thema Rechtliche Fragen ...