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



## hardfax (16. Juni 2007)

Hi Leute!

Bin ein ziemlicher Neuling in Sachen Batch programmierung  !

So mein Problem ist, dass ich ein schon erstelltes Batch Programm, durch ausführen einer andern Batch Datei in den autostart ordner kopieren wollte. Nur das will nicht so wie ich will ^^

hoffe ihr könnt mir helfen. 

Mfg Hardfax


----------



## chrysler (16. Juni 2007)

Hm, bist anscheinend nen Neuling, aber was für ne batch hast du da denn eigentlich programmiert?


```
@ECHO Kopie in Autostart
copy "Pfad zur Batch, die kopiert werden soll" "C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart"
```


----------



## hardfax (17. Juni 2007)

Danke schön erst mal für die schnelle Antwort!

Ja bin neu in Sachen batch und leider auch in c++ ^^ naja jeder fängt mal klein an 

so er findet die datei zwar kann aber nicht darauf zugreifen?

Es gut um ein kleines spaß ie, welches auf meiner LAN verteilt werden soll. 
Das soll eine andere Batch Datei in den autostart kopieren, so das sich bei jedem Computerstart ein fenster öffnet, in dem ich mit an der teilnahme an meiner LAN bedanke, denke ist ne lustige Idee und nix schlimmes.

mfg




```
@ echo

copy "D:\Dokumente und Einstellungen\All Users\Desktop\Batch\Dankeschoen.bat" "D:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Autostart"
```


----------



## chrysler (19. Juni 2007)

Hast du vielleicht einen eingeschränkten Benutzeraccount? Bist du als Administrator eingeloggt?


----------



## hardfax (20. Juni 2007)

hmm...

eigentlich bin ich als Administartor angemeldet...


----------



## chrysler (22. Juni 2007)

Was für eine Fehlermeldung kommt denn?


----------



## Servicepack_X (23. Juli 2007)

moin, moin, hardfax!

wahrscheinlich wird das mit deinem spässchen sowieso nichts, es sei denn, deine lan-kollegen leben im antivirus-steinzeitalter!

und noch ein kleiner tipp,

sei dir über die tragweite deiner handlungen im klaren!


----------



## Ripper11 (23. Juli 2007)

Hallo,
du kannst ja ein Eintrag in der Registry machen .

```
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Windows\CurrentVersion\Run" /v "Name" /d "Verzeichnis der Datei die gestartet werden soll"
```
Wenn du das ganze wieder löschen möchtest dann geh auf start-->ausführen-->regedit
und dann in das Verzeichnis "HKEY_LOCAL_MACHINE\SOFTWARE\Windows\CurrentVersion\Run" wechseln und den Eintrag löschen


----------



## chrysler (29. Juli 2007)

Dann sollte das etwa so gehen, dass du zwei Batch-Dateien hast und eine .reg-Datei.
Die .reg-Datei wird dann über die zweite Batch aufgerufen und sorgt für den Systemeintrag der ersten Batch-Datei, der für den Autostart erforderlich ist. Du bastelst dir also noch eine kleine .reg-Datei und evtl. noch eine zweite, mit der du den Eintrag wieder löschen kannst.


----------



## melodramer (14. Januar 2010)

ich hät dir da noch ein kleinen spass.

wenn du in nem kleinen netzwerk bist kannst du über die cmd sicher sogenannte meldungen schicken.
dann schreib dir eine kleine .bat die du dann ausführen kannst

<code>
@echo off

:start

msg benutzername nachricht

goto:start

</code>

du musst nur noch den benutzernamen und die nachricht eintragen dann geht der spass los. und zwar bekommt er soviele nachrichten bis du den batch mit "strg"+"C" abbrichst.

das ganze geht auch in einer domain mit   net send <benutzername> <nachricht>

ist ganz witzig das ganze und der andere ist beschäftigt mit meldungen weg machen


----------



## markkilein (17. Januar 2010)

Muss den Thread mal wieder aufrollen, aber wie ist denn die Schreibweise im Kopierbefehl für "Startmenü" ? Wgene dem Ü geht das doch gar nicht, oder doch?


----------



## Jellysheep (17. Januar 2010)

Kann man nicht einfacheinen Platzhalter verwenden, also "Startmen*"?
Oder in Dos-Schreibweise "STARTM~1".


----------



## Loewi (31. Januar 2010)

Also bei Windows 7 ist der Autostartordner der hier:


```
"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
```


----------



## Nawi0 (2. Februar 2010)

pushd "%userprofile%\startmenü\
geht bei mir im cmd direct

und in ner batch kannst d n sonderzeichen nutzen das ich hier so leider net anzeigen kann ich upe das in ner textdatei dann kannst es mit copy paste  in batches verwenden

Anhang anzeigen 123.txt


ansonsten gibts die möglichkeid:


```
echo ü >C:\123.txt
```

dort steht dan das sonderzeichen für ü drin geht ürigens mit allen sonderzeichen 

so die registry werte vom autostart hast ja schon dann schätz ich mal brauch ich da nichmehr weiterhelfen ^^


----------



## Masterfire (7. Februar 2010)

Irgendwie funktioniert das unter windows 7 nicht. Vielleicht mach ich was falsch.
Kann mir jemand einen fertigen Batchcode geben mit dem sich die Batch sebst in den autostart kopiert? 

Denn bei mir kann sich die Batch irgendwie nicht selbständig in den Autostart ordner kopieren.


----------



## Nawi0 (8. Februar 2010)

Masterfire hat gesagt.:


> Irgendwie funktioniert das unter windows 7 nicht. Vielleicht mach ich was falsch.
> Kann mir jemand einen fertigen Batchcode geben mit dem sich die Batch sebst in den autostart kopiert?
> 
> Denn bei mir kann sich die Batch irgendwie nicht selbständig in den Autostart ordner kopieren.



ich hab keine erfahrungen mit win 7  ...


----------



## Derhelfer (1. März 2010)

Also:

( copy "Neues Textdokument.bat" "%homedrive%%homepath%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" ) ohne ()

Dann wird die .bat immer beim anmelden ausgeführt.


----------



## Nawi0 (3. März 2010)

Masterfire hat gesagt.:


> Irgendwie funktioniert das unter windows 7 nicht. Vielleicht mach ich was falsch.
> Kann mir jemand einen fertigen Batchcode geben mit dem sich die Batch sebst in den autostart kopiert?
> 
> Denn bei mir kann sich die Batch irgendwie nicht selbständig in den Autostart ordner kopieren.


+


bin mir net sicher aber ich glaub win 7 hatt andere registry werte und da ich bis jetzt 1mal win7 hatte und nich im geringsten nach den registrys geschaut hab kann ich dir da leider net weiterhelfen ^^


----------



## Der Helfer (12. April 2010)

Hallo, 
Hier der richtige Code:
<code>
@echo off
color 0a
title Datei -> Autostrat
copy (Pfad zu deiner Batch) D:\%userprofile%\Startm*\Progr*\Autos*\
echo Date im Autostart!
pause > nul
exit
<code>

viel spass damit xP
                                          Gruß der Haelfer


----------



## deepthroat (13. April 2010)

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:

```
@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?


----------



## Nawi0 (9. August 2010)

deepthroat hat gesagt.:


> 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!)
> 
> ...


 
wenn de mir sagst was ich da noch ändern muss kein problem bin aber etwas auser übung xD


----------



## deepthroat (9. August 2010)

Hi.





Nawi0 hat gesagt.:


> wenn de mir sagst was ich da noch ändern muss kein problem bin aber etwas auser übung xD


Was willst du denn da ändern? Du müßtest doch nur das Skript in einer Datei speichern und ausführen.

Gruß


----------



## Nawi0 (9. August 2010)

deepthroat hat gesagt.:


> 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.


```
>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
> )
> ...



habe neu gestartet aber kein cmdfenster da .


----------



## deepthroat (10. August 2010)

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:

```
<Leerzeile>
! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\system\currentcontrolset\control\nls\codepage
    ACP    REG_SZ    1252
```
Windows 7:

```
<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:

```
@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:

```
copy "C:\Users\deep\autostart_user.cmd" "C:\Users\deep\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Start
up"
```
Gruß


----------

