Batch - Datei in den Autostart Ordner kopieren! Könntet ihr mir helfen?

Hi.

@Helfer: %userprofile% enthält einen vollständigen Pfad (mit Laufwerk). Warum schreibst du noch d: davor? Und bitte verwende die Code Tags! (Tags werden mit eckigen Klammern [code]...[/code] notiert!)

Man kann den Wert des aktuellen Startmenüs auch ändern, das Verzeichnis muss nicht in mit Autost* anfangen.

Man kann den aktuellen Wert aus der Registry auslesen:
Code:
@echo off

:: retrieve the current ANSI code page
for /f " usebackq skip=4 tokens=2*" %%i in (`reg query "hklm\system\currentcontrolset\control\nls\codepage" /v ACP`) do (
    set codepage=%%j
)

:: change code page accordingly
chcp %codepage% >nul

:: retrieve the startup folder of the current user
for /f " usebackq skip=4 tokens=2*" %%i in (`reg query "hkcu\software\microsoft\windows\currentversion\explorer\shell folders" /v Startup`) do (
    set startup=%%j
)

echo copy "%~f0" "%startup%"
Gruß

\edit: Könnte das mal jemand unter Vista bzw. Windows 7 ausprobieren?

wenn de mir sagst was ich da noch ändern muss kein problem bin aber etwas auser übung xD
 
Hi.
Was willst du denn da ändern? Du müßtest doch nur das Skript in einer Datei speichern und ausführen.

Gruß

das is was ich zurück bekomme, im autostart ordner is nix neues.

Code:
>for /F " usebackq skip=4 tokens=2*" %i in (`reg query "hklm\system\currentcontr
olset\control\nls\codepage" /v ACP`) do (set codepage=%j )

>chcp %%j  1>nul
Parameterformat falsch - %%j

>for /F " usebackq skip=4 tokens=2*" %i in (`reg query "hkcu\software\microsoft\
windows\currentversion\explorer\shell folders" /v Startup`) do (set startup=%j )


>copy "C:\Users\Nawi\Desktop\test.bat" "%%j"
        1 Datei(en) kopiert.

>start cmd

test.bat hat gesagt.:
:: retrieve the current ANSI code page
for /f " usebackq skip=4 tokens=2*" %%i in (`reg query "hklm\system\currentcontrolset\control\nls\codepage" /v ACP`) do (
set codepage=%%j
)

:: change code page accordingly
chcp %codepage% >nul

:: retrieve the startup folder of the current user
for /f " usebackq skip=4 tokens=2*" %%i in (`reg query "hkcu\software\microsoft\windows\currentversion\explorer\shell folders" /v Startup`) do (
set startup=%%j
)

copy "%~f0" "%startup%"

start cmd

habe neu gestartet aber kein cmdfenster da .
 
Hi.

Ich konnte es nun selbst unter Windows 7 ausprobieren.

Das Problem ist das das Programm reg eine andere Ausgabe hat als unter vorigen Windows Versionen.

Windows XP:
Code:
<Leerzeile>
! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\system\currentcontrolset\control\nls\codepage
    ACP    REG_SZ    1252
Windows 7:
Code:
<Leerzeile>
HKEY_LOCAL_MACHINE\system\currentcontrolset\control\nls\codepage
    ACP    REG_SZ    1252
Es müssten also lediglich 2 Zeilen und nicht 4 Zeilen von der reg query Ausgabe ignoriert werden.

Hier eine neuere Version getestet unter Windows 7:
Code:
@echo off
 
:: retrieve the current ANSI code page
for /f " usebackq tokens=3" %%i in (`reg query "hklm\system\currentcontrolset\control\nls\codepage" /v ACP ^| findstr /i acp`) do (
    set codepage=%%i
)
 
:: change code page accordingly
chcp %codepage% >nul
 
:: retrieve the startup folder of the current user
for /f " usebackq tokens=2*" %%i in (`reg query "hkcu\software\microsoft\windows\currentversion\explorer\shell folders" /v Startup ^| findstr /i Startup`) do (
    set startup=%%j
)
 
echo copy "%~f0" "%startup%"
Ausgabe:
Code:
copy "C:\Users\deep\autostart_user.cmd" "C:\Users\deep\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Start
up"
Gruß
 
Zurück