faustino-uno
Goto Top

Mit Batch Dateien umbenennen und kopieren die in verschiedenen Subfolders liegen

Hallo,
ich möchte gerne auf dem Server in den Benutzerverzeichnissen eine Datei umbenennen und eine neue version hinein kopieren.z.Beispiel:
ren d:\user\username\vorlagen\vorlage.dot vorlagealt.dot
xcopy \\servername\sharename\vorlage.doc d:\user\username\vorlagen\vorlage.dot
Mein Problem ist, dass die Verzeichnisse username verschieden heissen und ich möchte ja nich den vollständigen pfad angeben müssen. Wer hat die goldige Idee?
Besten Dank im voraus.
greetz

Content-Key: 35156

Url: https://administrator.de/contentid/35156

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: 6890
6890 30.06.2006 um 12:58:07 Uhr
Goto Top
hi,

du könntest vieleicht mit systemweiten umgebungsvariablen arbeiten, wo zb die pade und der aktuell angemeldete nutzername drinstehen??


mfg godlike P
Mitglied: faustino-uno
faustino-uno 30.06.2006 um 13:02:17 Uhr
Goto Top
da ich das batch file auf dem server laufen lasse will, kann ich leider nicht mit diesen variablen arbeiten.
Mitglied: Welnex
Welnex 30.06.2006 um 14:23:07 Uhr
Goto Top
Hi,

dann schreib doch Dein Logonscript um. Dann führt das jeder User beim nächsten Systemstart automatisch aus und Du kannst die Variablen benutzen.

Gruß
Steffen
Mitglied: Biber
Biber 30.06.2006 um 20:46:50 Uhr
Goto Top
Na ja,
mein Ansatz wäre so...


- wenn denn alle USERNAMEn parallel ihre Verzeichnisse haben, also die Verzeichnisse/Daten so ausssehen:

D:\Users\UserFritz\Vorlagen\Vorlage.dot
D:\Users\UserHans\Vorlagen\Vorlage.dot
D:\Users\UserinChantal\Vorlagen\Vorlage.dot
D:\Users\UserBiber\Vorlagen\Vorlage.dot
D:\Users\UserHeinz\Vorlagen\Vorlage.dot
Variante a)
... dann bekämst Du ja mit einem schlichten
Dir /b /s D:\Users\Vorlage.dot
...alle Vorlage.dots

Die kannst Du so der Reihe nach ersetzen.
[im Batch]
 for /f %%i in ('Dir /b /s D:\Users\Vorlage.dot') do (  
        ren %%~dpnxi vorlagealt.dot
        xcopy \\servername\sharename\vorlage.doc %%~dpnxi
   )

Variante 2)
Du machst eine For-Schleife über alle Unterverzeichnisse unterhalb D:\Users
For /f %%i in ('dir /b /a:d d:\users\*.*') do (   
        Rem ...alle Unterverzeichnisse werden durchgegangen
        Pushd "d:\users\%%i"  
        REM in das Vezeichnis "userHeinz" wechseln etc..  
        ren vorlagen\vorlage.dot vorlagealt.dot
        xcopy \\servername\sharename\vorlage.doc vorlagen\vorlage.dot
        PopD
)

Variante 3) .... den dritten Token (den Usernamen) im Gesamtpfad ermitteln und ggf. ersetzen.

Beispiel am CMD-Prompt...
$cmd$for /f "delims=\ tokens=3" %i in ("d:\user\userHeinz\vorlagen\vorlage.dot")do @echo AktuellerUser: %i  
AktuellerUser: userheinz
..aber Variante 3 wäre aufwändiger als Varianten 1 und 2 und ich werde die nicht weiter verfolgen.

Hoffe es hilft.
Biber
Mitglied: faustino-uno
faustino-uno 06.07.2006 um 07:48:58 Uhr
Goto Top
hi biber.PERFECT!

Besten Dank!
Mitglied: Biber
Biber 06.07.2006 um 08:36:47 Uhr
Goto Top
Dafür nich'... (wie wir in Bremen sagen).
Ich setze den Beitrag mal auf gelöst.

Grüße
Biber