Pfad zu Eigene Dateien (und Sub-Ordner) verschieben
Hallo zusammen. Ich möchte unter Win XP via Batch den Pfad zu den Eigenen Dateien (+ Eigene Bilder, Eigene Musik, etc.) verschieben. Zusätzlich sollten die bestehenden Ordner und Dateien ins Ziel verschoben werden. Also eigentlich genau das via Batch realisieren, was man mittels Eigene Dateien -> Eigenschaften -> Verschieben.. im Dialog machen kann.
Mein Versuch:
...war leider nur begrenzt erfolgreich. Das Auslesen funktioniert, das Setzen nur bedingt. Der Value nach Scriptdurchlauf sieht so aus:
<code text=plain>
C:\ed4\ /f
Wenn ich dann in die Eigenschaften der Eigenen Dateien klicke, steht immernoch der Standardpfad zu %profile%\Eigene Dateien im Dialogfenster. Ich gehe daher davon aus, dass ich den falschen Registry-Key angehe - finde aber keinen Alternativen.
Bin für jede Hilfe dankbar.
Gruß,
R.D.
Mein Versuch:
@echo off & setlocal
set neuerPfad=C:\ed4\
REM Aktuellen Pfad der Eigenen Dateien auslesen
for /f "tokens=2*" %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" ^| find "Personal"') do set "pfad=%%j"
echo Eigene Dateien: %pfad%
echo.
echo Neuer Pfad: %neuerPfad%
REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" /t REG_SZ /d "%neuerPfad%" /f
echo.
for /f "tokens=2*" %%i in ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" ^| find "Personal"') do set "pfad=%%j"
echo Eigene Dateien: %pfad%
echo.
pause
...war leider nur begrenzt erfolgreich. Das Auslesen funktioniert, das Setzen nur bedingt. Der Value nach Scriptdurchlauf sieht so aus:
<code text=plain>
C:\ed4\ /f
Wenn ich dann in die Eigenschaften der Eigenen Dateien klicke, steht immernoch der Standardpfad zu %profile%\Eigene Dateien im Dialogfenster. Ich gehe daher davon aus, dass ich den falschen Registry-Key angehe - finde aber keinen Alternativen.
Bin für jede Hilfe dankbar.
Gruß,
R.D.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 108705
Url: https://administrator.de/contentid/108705
Ausgedruckt am: 25.11.2024 um 07:11 Uhr
2 Kommentare
Neuester Kommentar
Habe dazu eine Lösung. Dabei werden auch die Zugriffberechtigungen auf die Eigenen Datein verschoben.
Damit die NTFS-Rechte mit verschoben werden, ist es erforderlich, das Programm robocopy.exe aus dem ResourceKit in den Ordner des Scriptes zu kopieren.
Hier nun der Code des Scriptes
Damit die NTFS-Rechte mit verschoben werden, ist es erforderlich, das Programm robocopy.exe aus dem ResourceKit in den Ordner des Scriptes zu kopieren.
Hier nun der Code des Scriptes
' Nutzernamen ermitteln
Set fs = CreateObject("WScript.Network")
username = fs.UserName
wscript.echo "Eigene Datein des aktuellen Nutzer: " & username & " werden verschoben."
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
' === Registry schreiben
pfad = "SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\" & PORT
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\localhost\root\default:StdRegProv")
oReg.CreateKey HKEY_LOCAL_MACHINE, pfad
' HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths\Azubi: "d:\Azubi\Eigene Dateien" REG_SZ
pfad = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths\"
oReg.SetStringValue HKEY_LOCAL_MACHINE, pfad , username, "d:\" & username & "\Eigene Dateien"
' HKU\S-1-5-21-606747145-1993962763-1957994488-1006\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\My Pictures: "d:\Azubi\Eigene Dateien\Eigene Bilder" REG_SZ
pfad = "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\"
oReg.SetStringValue HKEY_CURRENT_USER, pfad , "My Pictures", "d:\" & username & "\Eigene Dateien\Eigene Bilder"
' HKU\S-1-5-21-606747145-1993962763-1957994488-1006\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal: "d:\Azubi\Eigene Dateien" REG_SZ
pfad = "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\"
oReg.SetStringValue HKEY_CURRENT_USER, pfad , "Personal", "d:\" & username & "\Eigene Dateien"
' HKU\S-1-5-21-606747145-1993962763-1957994488-1006\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures: "d:\Azubi\Eigene Dateien\Eigene Bilder" Reg_SZ
pfad = "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\"
oReg.SetStringValue HKEY_CURRENT_USER, pfad , "My Pictures", "d:\" & username & "\Eigene Dateien\Eigene Bilder"
' HKU\S-1-5-21-606747145-1993962763-1957994488-1006\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal: "d:\Azubi\Eigene Dateien" Reg_Expand_SZ
pfad = "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\"
oReg.SetExpandedStringValue HKEY_CURRENT_USER, pfad , "Personal", "d:\" & username & "\Eigene Dateien"
Set WshShell = WScript.CreateObject( "WScript.Shell" )
WshShell.run "robocopy.exe " & Chr(34) & "c:\dokumente und einstellungen\" & username & "\Eigene Dateien"& Chr(34) & " " & Chr(34) & "d:\" & username & "\Eigene Dateien" & Chr(34) & " /E /SEC /MOVE /V /NP /R:10 /W:30 ", , true
' Aktuellen Nutzer Abmelden
' http://www.motobit.com/tips/detpg_wmi-windows-system-shutdown/
'Get connection To local wmi
Set Connection = GetObject("winmgmts:root\cimv2")
'Get Win32_OperatingSystem objects - only one object In the collection
WQL = "Select Name From Win32_OperatingSystem"
Set SystemClass = Connection.ExecQuery(WQL)
'Get one system object
'I think there is no way To get the object using URL?
For Each System In SystemClass
System.Win32ShutDown (0)
Next