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, 3295 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Variable auf Inhalt prüfen (1)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

VB for Applications
Explorer mit Pfad und einer bestimmten Ansicht öffnen (1)

Frage von StefanKittel zum Thema VB for Applications ...

JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...