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

Dateien im Netz verteilen - unterschiedliche Zielpfade ermitteln

Frage Entwicklung Batch & Shell

Mitglied: schauan

schauan (Level 1) - Jetzt verbinden

12.06.2008, aktualisiert 13.06.2008, 5567 Aufrufe, 11 Kommentare

Hallo,

ich muss im Netzwerk 4 Dateien, z.B. Datei1.vbs bis Datei4.vbs, auf etlichen PC verteilen.

Die Dateien liegen lokal unter D:\Zeuss.

Dort liegt auch eine Rechner.txt mit den Rechnernamen, Inhalt z.B.
PC007
PC4711
PC0815
die Namen zeilenweise, keine sonstigen Angaben.

Auf den Fremdrechnern sollen die Dateien in alle Verzeichnisse mit dem Namen Makro. Diese Verzeichnisse gibt es je Rechner öfter, irgendwo als Unterverzeichnisse von D:\Zeuss, z.B.
D:\Zeuss\Orpheus\Makro,
D:\Zeuss\Euridike\Poseidon\Makro usw.

Für feste Verzeichnisse hab ich auch schon was gefunden, aber hier sind die Zielverzeichnisse ja sehr variabel. Auf dem Zielrechner müssen die Verzeichnisse durchsucht werden, damit das klappt ...

Die remoten Rechner kann ich zur not nacheinander manuell mappen, am wichtigsten wäre ein Script / eine Batch, die die 4 Dateien in allen Makro-Verzeichnissen platziert und dabei ggf. vorhandene Dateien gleichen Namens ersetzt.

Danke einstweilen,
Mitglied: tacker
12.06.2008 um 16:07 Uhr
salü schauan

hab dir ma folgendes script zusammengeschrieben, welches dir die rechnerliste durchgeht, die rechner automatisch unter dem laufwerk P:\ mappt und dann deine gewünschte prozedur mit dem kopieren durchgeht!

ich hoffe es funktioniert! und niemand soll sich über die struktur des scripts beschweren;)

01.
dim fso 
02.
dim network 
03.
 
04.
set fso = createobject("Scripting.filesystemobject") 
05.
set network = createobject("wscript.network") 
06.
set pcs = fso.opentextfile("Rechner.txt", 1) 
07.
 
08.
do while not pcs.atendofstream 
09.
	pcname = pcs.readline() 
10.
	network.mapnetworkdrive "P:", "\\" & pcname & "\d$\Zeuss", false 
11.
	set ordner = fso.getfolder("P:\") 
12.
	     
13.
	for each subfolder in ordner.subfolders 
14.
        findsubfolder(subfolder.path) 
15.
	next 
16.
 
17.
	network.removenetworkdrive "P:", true, true 
18.
loop 
19.
 
20.
function FindSubFolder(ordner) 
21.
set folders = fso.getfolder(ordner).subfolders 
22.
    if right(ordner, 5) = "Makro" then 
23.
        kopieren(ordner) 
24.
    end if 
25.
for each subfolder in folders  
26.
    FindSubFolder(subfolder) 
27.
Next 
28.
End Function 
29.
     
30.
function kopieren(ordner) 
31.
   fso.copyfile "D:\Zeuss\Datei1.vbs", ordner & "\" 
32.
   fso.copyfile "D:\Zeuss\Datei2.vbs", ordner & "\" 
33.
   fso.copyfile "D:\Zeuss\Datei3.vbs", ordner & "\" 
34.
   fso.copyfile "D:\Zeuss\Datei4.vbs", ordner & "\" 
35.
end function
edit: voraussetzung ist natürlich, dass du auf dem remotepc mit deinem angemoldenen user adminrechte hast!

edit2: grml das da unten lässt mein script wohl ein bisschen aufge.blasen dastehen ...

grüsse tacker
Bitte warten ..
Mitglied: bastla
12.06.2008 um 16:17 Uhr
Hallo schauan!

Sollte sich eigentlich mit folgendem (ungetesteten) Oneliner (direkt von der Kommandozeile) lösen lassen:
01.
for /f "delims=" %i in (D:\Zeuss\rechner.txt) do @for /f "delims=" %a in ('dir /s /b /ad "\\%i\D$\Zeuss\Makro"') do @for %f in (Datei1.vbs Datei2.vbs Datei3.vbs Datei4.vbs) do @echo copy /y "D:\Zeuss\%f" "%a\">nul
Es wird hier davon ausgegangen, dass die Zielrechner alle erreichbar sind. Durch das "@echo" vor dem "copy" wird der Kopiervorgang zunächst nur simuliert - wenn das Ergebnis vernünftig aussieht, kannst Du es (das "echo" ) einfach weglassen.

Da Du keine besondere Freigabe auf den Zielrechnern erwähnt hast, nehme ich an, dass Du Admin-Rechte hast und daher D$ benutzen kannst.

Falls Du die dargestellte Zeile in einem Batch verwenden willst, jeweils %%i, %%a und %%f schreiben.

Grüße
bastla

[Edit] Berücksichtigung von Einzeldateien "Datei1.vbs" bis "Datei4.vbs" ergänzt. [/Edit]
[Edit2] Unnöttiges Anführungszeichen nach "Datei4.vbs" entfernt. [/Edit]
Bitte warten ..
Mitglied: schauan
12.06.2008 um 16:58 Uhr
Hallo tacker,
das sieht erst mal top aus. Probieren kann ich es erst morgen - habe im moment kein Netzwerk um mich rum ;-(
Wegen der anderen Antwort bin ich noch etwas skeptisch, siehe meine entsprechende Antwort unten.
Danke einstweilen, schauan
Bitte warten ..
Mitglied: schauan
12.06.2008 um 17:08 Uhr
Hallo bastla,

danke schön.

Ich kenne zwar die DOS-Befehle im groben, aber mit der "höheren" BATCH-Programmierung bin ich nicht firm. Daher auch mein etwas skeptische Frage, ich komme erst morgen zum testen.

Der Subfolder Makro liegt ja irgendwo in Tiefe X hinter Zeuss. Klappt das da mit
'dir /s /b /ad "\\%i\D$\Zeuss\Makro"'?
Eigentlich müsste ich ja ein Dir auf 'dir /s /b /ad "\\%i\D$\Zeuss\" legen und prüfen, ob das Unterverzeichnis Makro heisst und wenn ja, die Daten dort rein legen.

Grüße, schauan
Bitte warten ..
Mitglied: bastla
12.06.2008 um 17:23 Uhr
Hallo schauan!

Als Demo von der Kommandozeile:
01.
C:\>dir \\XPP14\D$\Zeuss\Makro /s /b /ad 
02.
\\XPP14\D$\Zeuss\Orpheus\Makro 
03.
\\XPP14\D$\Zeuss\Euridike\Poseidon\Makro 
04.
\\XPP14\D$\Zeuss\Hephaistos\Makro 
05.
\\XPP14\D$\Zeuss\Athene\Selene\Makro
Grüße
bastla
Bitte warten ..
Mitglied: schauan
13.06.2008 um 08:50 Uhr
Hallo bastla,

nur ein bischen geht, aber nicht wie gewollt.
Ich habe zuerst das C:\dir ... probiert. Ich bekomme damit allerdings erst mal nix angezeigt, und wenn ich noch den Orpheus dazwischen tue nur die Unterverzeichnisse von ..\Zeuss\Orpheus\Makro angezeigt:
\\XPP14\D$\Zeuss\Orpheus\Makro\MAMA
\\XPP14\D$\Zeuss\Orpheus\Makro\PAPA
So wie Dein Posting sieht's nicht aus.

Beim Kopieren ist es entsprechend. Die Kopieen werden ebenso nicht nach Makro, sondern wenn ich noch Orpheus reinklemme, in die Unterverzeichnisse von Makro gelegt - hier also MAMA und PAPA.

Habe oben das System nicht angegeben - es geht um XP.
Bitte warten ..
Mitglied: schauan
13.06.2008 um 09:46 Uhr
Hallo tacker,
funktioniert anstandslos. Ich bastle mir jetzt noch ein Logfile dazu und vielleicht eine Fehlerbehandlung, falls mal ein Zugriff nicht funktioniert. Danke nochmal, schauan.
Bitte warten ..
Mitglied: tacker
13.06.2008 um 09:47 Uhr
guten morgen!

mein script hast du bereits ausprobiert?

grüsse tacker
Bitte warten ..
Mitglied: schauan
13.06.2008 um 10:10 Uhr
Hallo tacker,
da haben sich unsere Antworten fast überschnitten - vor einer Minute habe ich mich bedankt mal sehn, ob bastla noch eine Idee hat und seine die Lösung auch noch zum Ziel führt.
Grüße, schauan
Bitte warten ..
Mitglied: schauan
13.06.2008 um 11:49 Uhr
Hallo bastla,

bin gerade auch mit Deiner Lösung weitergekommen. Es hat ein Stern gefehlt - nicht der vom Ötzi

01.
C:\>dir \\PC007\D$\Zeuss\*Makro /s /b /ad 
Bitte warten ..
Mitglied: bastla
13.06.2008 um 14:11 Uhr
Hallo schauan!

Da es bei mir (ebenfalls XP) auch (wie es ja eigentlich sein sollte) ohne Stern funktioniert (den bräuchtest Du nur, wenn im Verzeichnisnamen vor "Makro" noch andere Zeichen stünden), kann ich das Problem nicht nachvollziehen - aber da Du ohnehin schon tackers funktionierende Lösung (und einen Workaround für die CMD-Variante ) hast, ist das ja eigentlich nicht weiter wichtig.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...