donnobre
Goto Top

Über CMD ins Startmenü

Hallo zusammen,
also ich möchte eigendlich nur das eine datei ins windows starmenü kopieren. nun gibt es mehrere Windowsversionen und Adminrechte.
Die möglichkeit die ich habe geht zwar aber stehe mehr auf einfache und übersichtliche scripte. Ich weiß das ich in dem script zu oft auf nr. sicher gehe.

md c:\temp\ablage

set V01=c:\Temp\ablage
set V02=c:\Temp\ablage
set V03=c:\Temp\ablage
set V04=c:\Temp\ablage
set V05=c:\Temp\ablage
set V06=c:\Temp\ablage
set V07=c:\Temp\ablage
set V08=c:\Temp\ablage
set V09=c:\Temp\ablage
set V10=c:\Temp\ablage
set V11=c:\Temp\ablage
set V12=c:\Temp\ablage
set V13=c:\Temp\ablage
set V14=c:\Temp\ablage
set V15=c:\Temp\ablage
set V16=c:\Temp\ablage
set V17=c:\Temp\ablage
set V18=c:\Temp\ablage
set V19=c:\Temp\ablage
set V20=c:\Temp\ablage
set V21=c:\Temp\ablage

if EXIST "%userprofile%\Startmenü\Programme\Autostart\" set V01="%userprofile%\Startmenü\Programme\Autostart\"
if EXIST "%userprofile%\%start_menu%\Programme\Autostart\" set V02="%userprofile%\%start_menu%\Programme\Autostart\"
if EXIST "%userprofile%\Startm~1\Programme\Autostart\" set V03="%userprofile%\Startm~1\Programme\Autostart\"

if EXIST "%windir%\All Users\Startmenü\Programme\Autostart\" set V04="%windir%\All Users\Startmenü\Programme\Autostart\"
if EXIST "%windir%\All Users\%start_menu%\Programme\Autostart\" set V05="%windir%\All Users\%start_menu%\Programme\Autostart\"
if EXIST "%windir%\All Users\Startm~1\Programme\Autostart\" set V06="%windir%\All Users\Startm~1\Programme\Autostart\"

if EXIST "%windir%\Profiles\%user%\Startmenü\Programme\Autostart" set V07="%windir%\Profiles\%user%\Startmenü\Programme\Autostart"
if EXIST "%windir%\Startmenü\Programme\Autostart\" set V08="%windir%\Startmenü\Programme\Autostart\"

if EXIST "%HOMEPATH%\Startmenü\Programme\Autostart\" set V09="%HOMEPATH%\Startmenü\Programme\Autostart\"
if EXIST "%HOMEPATH%\%start_menu%\Programme\Autostart\" set V10="%HOMEPATH%\%start_menu%\Programme\Autostart\"
if EXIST "%HOMEPATH%\Startm~1\Programme\Autostart\" set V11c="%HOMEPATH%\Startm~1\Programme\Autostart\"

if EXIST "%AllUsersProfile%\Startmenü\Programme\Autostart\" set V12="%AllUsersProfile%\Startmenü\Programme\Autostart\"
if EXIST "%AllUsersProfile%\%start_menu%\Programme\Autostart\" set V13="%AllUsersProfile%\%start_menu%\Programme\Autostart\"
if EXIST "%AllUsersProfile%\Startm~1\Programme\Autostart\" set V14c="%AllUsersProfile%\Startm~1\Programme\Autostart\"

if EXIST "Dokumente und Einstellungen\%USER%\Startmenü\Programme\Autostart" set V15="Dokumente und Einstellungen\%USER%\Startmenü\Programme\Autostart"

if EXIST "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" set V16="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
if EXIST "C:\Users\%user%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" set V17="C:\Users\%user%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
if EXIST "C:\Benutzer\%user%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" set V18="C:\Benutzer\%user%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

if EXIST "C:\Benutzer\%user%\Startmenü" set V19="C:\Benutzer\%user%\Startmenü"
if EXIST "C:\Benutzer\%user%\%start_menu%" set V20="C:\Benutzer\%user%\%start_menu%"
if EXIST "C:\Benutzer\%user%\Startm~1" set V21="C:\Benutzer\%user%\Startm~1"

if EXIST "%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" set V22="%SYSTEMDRIVE%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"

dann würde kommen wenn %v00% nicht c:\temp\ablage dann kopiere datei von c:\1.txt nach c:\2\1.txt

Content-Key: 167501

Url: https://administrator.de/contentid/167501

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

Member: ovu-p86
ovu-p86 Jun 06, 2011 at 01:52:22 (UTC)
Goto Top
Hallo DONNobre,

da ich die Fragestellung nicht komplett verstehe, hier zumindest ein Hinweis
bzgl. einer Weiche für die Windows-Versionen.

for /F "usebackq tokens=2 delims=[" %%i IN (`ver`) DO set version=%%i  
set Version=%Version:~8,3%
if exist "c:\Program Files (x86)" (set bit=64) else (set bit=32)  

Ergenis z.B.
5.1
32

Durch die Auswertung könntest du zumindest schon mal verteilen, zuordnen, wobei die bit-Version wahrscheinlich für dich
nicht so wichtig ist.

Gruß
Uwe
Member: Friemler
Friemler Jun 06, 2011 at 07:20:23 (UTC)
Goto Top
Hallo DONNobre,

Nimm besser Inline-VBScript, dann bist Du wirklich von der Windowsversion unabhängig:
@echo off

setlocal


set "VBSCode=%TEMP%\GetAutostartPath.vbs"  

> "%VBSCode%" echo Set objShell = WScript.CreateObject("WScript.Shell")  
>>"%VBSCode%" echo WScript.Echo objShell.SpecialFolders("Startup")  

for /f "delims=" %%p in ('cscript /nologo "%VBSCode%"') do set "AutostartPath=%%p"  

del "%VBSCode%" 2>NUL  


echo %AutostartPath%
Das liefert den Autostartordner vom aktuell angemeldeten Benutzer. Um den Pfad des All Users Autostartordners zu bekommen, musst Du objShell.SpecialFolders("AllUsersStartup") schreiben.

Gruß
Friemler
Member: mathe172
mathe172 Jun 06, 2011 at 13:59:49 (UTC)
Goto Top
Hallo,

@Friemler:
Warum benutzt eigentlich jeder diesen 2-Zeiler in vbs?
Wieso nicht
WScript.Echo WScript.CreateObject("WScript.Shell").SpecialFolders("StartUp")  
Ist das zu unübersichtlich?

@to:
Bitte benutze Codeformatierung

Warum benutzt du so viele unterschiedliche Variablen?
Wäre so etwas nicht einfacher? (wenn schon so komliziert):
Pfade.txt:
*Kommentarzeilen mit *
*Syntax: Variablenname:Wert, auch mit umgebungsvariablen
V01:%windir%\Profiles\%user%\Startmenü\Programme\Autostart
*und so weiter

CheckPaths.bat:
for /f "eol=* tokens=1* delims=:" %%A in (Pfade.txt) do for /f "delims=" %%C in ('echo.%%B') do if exist "%%C" set "%%B=%%C"  

MfG,
Mathe172
Member: Friemler
Friemler Jun 06, 2011 at 14:20:51 (UTC)
Goto Top
Hallo Mathe,

Zitat von @mathe172:
Ist das zu unübersichtlich?

Du hast es erfasst. face-wink

Von der Idee, feste Pfade abzuprüfen, halte ich nichts. Evtl. verschiebt MS die bei der nächsten Windowsversion wieder an eine andere Stelle.

Gruß
Friemler
Member: DONNobre
DONNobre Jun 06, 2011 at 15:26:22 (UTC)
Goto Top
Ok vbs sieht besser aus geb ich zu ...
aber wie gebe ich die zu kopierende datei an ? von vbs habe ich 0 ahnung
Member: Friemler
Friemler Jun 06, 2011 at 16:50:16 (UTC)
Goto Top
Hallo DONNobre,

wer sagt denn, dass Du das jetzt komplett in VBS lösen sollst? Mein Script oben IST Batchscript, hänge jetzt einfach den Kopierbefehl an.

Machst Du Ferien auf dem Mond? Ich meine ja nur, wegen der langen Leitung... face-wink

Gruß
Friemler
Member: DONNobre
DONNobre Jun 06, 2011 at 21:22:11 (UTC)
Goto Top
Machst Du Ferien auf dem Mond? Ich meine ja nur, wegen der langen Leitung... face-wink


Manchmal denke ich ja ... face-smile