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

Printed on: April 25, 2024 at 04:04 o'clock

Mitglied: 6890
6890 Jun 30, 2006 at 10:58:07 (UTC)
Goto Top
hi,

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


mfg godlike P
Member: faustino-uno
faustino-uno Jun 30, 2006 at 11:02:17 (UTC)
Goto Top
da ich das batch file auf dem server laufen lasse will, kann ich leider nicht mit diesen variablen arbeiten.
Member: Welnex
Welnex Jun 30, 2006 at 12:23:07 (UTC)
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
Member: Biber
Biber Jun 30, 2006 at 18:46:50 (UTC)
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
Member: faustino-uno
faustino-uno Jul 06, 2006 at 05:48:58 (UTC)
Goto Top
hi biber.PERFECT!

Besten Dank!
Member: Biber
Biber Jul 06, 2006 at 06:36:47 (UTC)
Goto Top
Dafür nich'... (wie wir in Bremen sagen).
Ich setze den Beitrag mal auf gelöst.

Grüße
Biber