Top-Themen

Aktuelle Themen (A bis Z)

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 Batch zum Synchronisieren von Ordnerstrukturen bzw. pfade auslesen

Mitglied: normi3053

normi3053 (Level 1) - Jetzt verbinden

01.02.2008, aktualisiert 15:42 Uhr, 9031 Aufrufe, 5 Kommentare

Hallo Leute,

ist mein erster Eintrag bei euch in diesem wirklich informativen Forum. Habe bereits sehr viel von den Tutorials und Beiträgen ralisieren können aber nun komm ich leider nicht wirklich weiter und benötige eure Hilfe.

Ich arbeite gerade an einem Script welches wie im Betreff angedeutet Ordnerstrukturen und deren Inhalte synchronisieren soll.
Hintergrund:
Für Silentinstall soll von einem Installshare nur das notwendige auf eine lokale Platte um dann eine CD/DVD zu brennen (für Clients ausser Haus)

In den zu synchronisierenden Ordnern liegt eine Datei copy.txt zusätzlich sollen Dateien unter dem Ordner auch kopiert werden

Erste Anforderung die Ordner nach der Datei auszulesen und diese zu synchronisieren ist kein Problem gewesen
z.B:
set source=\\server\share\apps
set destination=d:\silentinstall\apps
set searchstr=copy.txt


for /f %%i in ('dir "%source%" /A:d /b /s') do if exist %%i\%searchstr% for /f "tokens=1,2* delims=\" %%j in ("%%i") do echo %%l>>%destination%\log.txt & %programfiles%\robocopy %%i %destination%\%%l /MIR /r:2 & del %destination%\%%l\%searchstr%

Ist etwas lang aber funktioniert.

Nun muss ich zusätzlich die Dateien in übergeordneten Ordner mitkopieren
Beispiel
Ordner: \\server\share\apps\adobe\reader\7.0
dateien \\server\share\apps\adobe\installreader.cmd

Jezt dachte ich mir ich schreibe alle zu kopierenden Ordner in eine Datei

for /d /r %source% %%i in (*) do if exist %%i\%searchstr% echo %%i>>success.log

Dann möchte ich die Zeilen auslesen und den Pfad um eine Ebene kürzen

z.B.:
\\server\share\silentinstall\apps\adobe\reader\7.0
auf
\\server\share\silentinstall\apps\adobe\reader

um dann die Datei (en) zu kopieren

Leider finde ich nur die Funktion um einen String von links nach rechts zu kürzen
set %var%=%var:*\=%

Frage:
gibt es auch irgend eine Möglichkeit um die Variable genauso von rechts nach links bis zu einem Trennzeichen zu kürzen?
wenn nicht gibt es eine andere Möglichkeit und den Ordner un eine Ebene zu kürzen?

Hoffe ich habe nicht zu ausführlich beschrieben aber ich dachte der Hintergrund wird immer wieder erfragt dann stell ich ihn gleich rein :o)

Vielen Dank
schöne Grüße
normi
Mitglied: miniversum
01.02.2008 um 12:31 Uhr
Nutze doch infach eine relative Angabe. Mit einem ..\ kommst du eiune Ordnerebene zurück.
\\server\share\silentinstall\apps\adobe\reader\7.0\..\
ist gleichbedeutend mit
\\server\share\silentinstall\apps\adobe\reader\
miniversum
Bitte warten ..
Mitglied: stbewo
01.02.2008 um 12:49 Uhr
Hi normi,

innerhalb des Batches mit

@FOR /F "tokens=*" %%i in (success.log) do cscript //nologo pfad.vbs %%i

und ein kleines VB-Script "Pfad.vbs"

Set objArgs = Wscript.Arguments
parameter = Split(objArgs(0), "\", -1, 1)
For Each name in parameter
path = path & name & "\"
laenge = len(name)
Next
ausgabe = left(path, len(path)-(laenge+2))
wscript.echo ausgabe

Gruß
Stefan
Bitte warten ..
Mitglied: Biber
01.02.2008 um 13:17 Uhr
Moin normi3053,

alternativ könntest Du mit den FOR -"%~"-Variablen den Pfad kürzen.

01.
(=13:08:16  D:\temp=) 
02.
>for /f %i in ("%instpfadalt:\\=%") do @echo %i 
03.
server\share\silentinstall\apps\adobe\reader\7.0 
04.
 
05.
(=13:09:39  D:\temp=) 
06.
>for /f %i in ("c:\%instpfadalt%") do @echo set "instpfadminus1=\%~pi" 
07.
set "instpfadminus1=\\server\share\silentinstall\apps\adobe\reader\"
Ich empfehle, die UNC-\\-Zeichen so wie dargestellt kurzzeitig rauszunehmen aus der %~pi-Auflösung.
Die CMD.exe versucht sonst wirklich, einen Pfad "\\server\share.." zu finden - das dauert unnötig lange.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
01.02.2008 um 15:36 Uhr
@stbewo
Um eine zusätzliche Datei einzusparen, verwende ich gerne aus dem Batch heraus erstellte temporäre VBScripts und formuliere diese etwas knapper, zB
01.
... 
02.
set "instpfadalt=server\share\silentinstall\apps\adobe\reader\7.0" 
03.
... 
04.
set "C=%temp%\CutPath.vbs" 
05.
echo Pfad=WScript.Arguments(0):WScript.Echo Left(Pfad,InStrRev(Pfad,"\")-1)>%C% 
06.
for /f "delims=" %%i in ('cscript //nologo %C% "%instpfadalt%"') do set "instpfadminus1=%%i" 
07.
del %C%
Anmerkung: Biber's Empfehlung folgend zum Testen ebenfalls nur "server\..." anstatt "\\server\..."

Grüße
bastla
Bitte warten ..
Mitglied: normi3053
01.02.2008 um 15:42 Uhr
Hi,
vielen Dank für die schnellen Antworten.
Der Vorschlag mit dem relativen Pfad gefällt mir sehr gut (kann ich direkt anstoppeln).
Bibers Vorschlag ist genau das was ich ursprünglich wollte nur ist der relative Pfad wahrscheinlich die einfachere Lösung.
Das vb script ist auch eine gute Lösung nur wollte ich den Vorgang alleine mit einem CMD Script lösen.
Danke nochmals

gruß
Normi
Bitte warten ..
Ähnliche Inhalte
Windows Server

Ordnerstruktur auslesen und optisch schön ausdrucken

gelöst Frage von AkcentWindows Server23 Kommentare

Hallo, Kennt jemand ein Tool mit dem man die ganze Ordner-Struktur einer Storage für eine Migration auf eine neue ...

Batch & Shell

BATCH: Sharename Pfad Berechtigten (auch Gruppen) und die letzte Änderung in Batch Skript auslesen

Frage von nowyouseeme93Batch & Shell2 Kommentare

Hallo ihr Lieben, mein erster Teil zu der Frage wie ich Sharenamen und Pfad aus net share oder wmic ...

VB for Applications

Windows Ordnerstruktur, Pfad und Dateiname in Excel ausgeben

gelöst Frage von zlep01VB for Applications2 Kommentare

Hallo liebes Forum, ich stehe zur Zeit vor einem Problem, welches ich hoffe, mit einem Makro (VBA) oder ähnlichem ...

Batch & Shell

Batch: Ordnerstruktur mit Hilfe einer .txt erstellen

gelöst Frage von snax123Batch & Shell5 Kommentare

Hallo, Ich versuche grad eine Batch Programm zu schreiben, das eine CSV/TXT Datei liest und dann dazu passend Ordner ...

Neue Wissensbeiträge
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 20 StundenMicrosoft

Server Betriebssysteme auf dem die verschiedenen Offices nicht supported sind: • Office 365 ist und wird nicht supported auf Windows ...

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 21 StundenSpeicherkarten1 Kommentar

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 23 StundenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 1 TagHardware1 Kommentar

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Sicherheitsgrundlagen
EuGH-Urteil - Internetanschluss für die ganze Familie - Filesharer haften trotzdem
Frage von StefanKittelSicherheitsgrundlagen24 Kommentare

Hallo, In diesem Artikel geht es darum, dass Jemand aus der Familie ein Hörbuch illegal hochgeladen hat. Der Vater ...

Windows 10
Sysprep Fehler im Log kann nicht starten
Frage von grillinator95Windows 1022 Kommentare

Hallo, kann leider SYSPREP nicht mehr starten, Win10 64bit. Logfile sagt folgendes: 2018-10-17 13:44:56, Info SYSPRP 2018-10-17 13:44:56, Info ...

Apple
MacBook Pro 2018 mit 8 GB oder 16 GB
Frage von SysAdm81Apple22 Kommentare

Hallo zusammen, ich steh vor der Überlegung mir ein MacBook Pro 13 (2018) zu kaufen. Bzgl. SSD habe ich ...

Datenbanken
MS SQL DB-Daten archivieren?
gelöst Frage von SchelinhoDatenbanken16 Kommentare

Hallo zusammen! Ich habe eine Anwendung, welche MSSQL (SQL Server 2014 SP2) nutzt. Auf der DB-Instanz laufen diverse Datenbanken. ...