dinoldo
Cadet 4th Year
- Registriert
- Juni 2017
- Beiträge
- 104
Hallo Leute,
ich habe dieses CMD-Script, für das Anlegen der Benutzerprofiel in einem Programm.
Das Verzeichnis NEU gilt beim Kopieren als sozusagen Vorlageverzeichnis.
Ich habe zwei Variante (1 = Windows Benutzername und 2=Benutzername eingeben) in der CMD-Datei zur Auswahl.
Mit dem Script wird vorher das Zeilverzeichnis gelöscht, dann das Zeilverzeichnis mit Benutzername angelegt, danach die Dateien und unterverzeichnisse von "NEU" kopiert und umbenannt. Soweit in Ordnung.
Das Problem ist nur, wenn der Benutzername beispielsweise von Namen her kürzer ist als "NEU" dann wewrden die Dateien nach dem Kopieren nicht richtig umbenannt. Bsp. ich wähle Variante 2 und gebe dort KIT ein. Dann wird aus NEU nur KITU_ anstatt KIT
Woran liegt das bitte?
ich habe dieses CMD-Script, für das Anlegen der Benutzerprofiel in einem Programm.
Das Verzeichnis NEU gilt beim Kopieren als sozusagen Vorlageverzeichnis.
Ich habe zwei Variante (1 = Windows Benutzername und 2=Benutzername eingeben) in der CMD-Datei zur Auswahl.
Mit dem Script wird vorher das Zeilverzeichnis gelöscht, dann das Zeilverzeichnis mit Benutzername angelegt, danach die Dateien und unterverzeichnisse von "NEU" kopiert und umbenannt. Soweit in Ordnung.
Das Problem ist nur, wenn der Benutzername beispielsweise von Namen her kürzer ist als "NEU" dann wewrden die Dateien nach dem Kopieren nicht richtig umbenannt. Bsp. ich wähle Variante 2 und gebe dort KIT ein. Dann wird aus NEU nur KITU_ anstatt KIT
Woran liegt das bitte?
Code:
@echo off
setlocal enabledelayedexpansion
color 17
chcp 65001
cls
SET Script_Path=%~dp0
echo %Script_Path%
SET teil=%Script_Path:~0,-16%
echo %teil%
echo ---------------------------------------------------------------------------
echo Profil erstellen
echo ---------------------------------------------------------------------------
echo.
echo [1] Entspricht Windows Benutzername
echo [2] Benutzername eingeben
echo.
set frage=2
set /P frage=Bitte die Nummer eingeben:
IF %frage% == 1 (
goto option1
)
IF %frage% == 2 (
set /P struser=Bitte den Name eingeben:
goto option2
)
:option1
set struser=%username%
goto weiter
:option2
goto weiter
endlocal
:weiter
REM löscht das Verzeichnis auf jeden Fall falls Backup schon existiert
if exist "%teil%\user_config\%struser%" (
rd "%teil%\user_config\%struser%" /S /Q
)
REM löscht das Verzeichnis auf jeden Fall falls Backup schon existiert
if exist "%teil%\user_workspace\%struser%" (
rd "%teil%\user_workspace\%struser%" /S /Q
)
REM Kopieren user_config von der Vorlage _NEU_
xcopy "%teil%\user_config\_NEU_" "%teil%\user_config\%struser%" /y /i /E
REM Umbenennen aller Dateien die _NEU_ beginnen
for /r "%teil%\user_config\%struser%" %%a in (_NEU_*.*) do ren "%%a" "%struser%*.*"
REM Kopieren user_workspace von der Vorlage _NEU_
xcopy "%teil%\user_workspace\_NEU_" "%teil%\user_workspace\%struser%" /y /i /E
REM Umbenennen aller Dateien die _NEU_ beginnen
for /r "%teil%\user_workspace\%struser%" %%a in (_NEU_*.*) do ren "%%a" "%struser%*.*"
REM Dateiexplorer an der Stelle öffnen
%SYSTEMROOT%\EXPLORER.EXE "%teil%\user_config"
:exit1