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-ID: 167501

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

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

ovu-p86
ovu-p86 06.06.2011 um 03:52:22 Uhr
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
Friemler
Friemler 06.06.2011 um 09:20:23 Uhr
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
mathe172
mathe172 06.06.2011 um 15:59:49 Uhr
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
Friemler
Friemler 06.06.2011 um 16:20:51 Uhr
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
DONNobre
DONNobre 06.06.2011 um 17:26:22 Uhr
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
Friemler
Friemler 06.06.2011 um 18:50:16 Uhr
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
DONNobre
DONNobre 06.06.2011 um 23:22:11 Uhr
Goto Top
Machst Du Ferien auf dem Mond? Ich meine ja nur, wegen der langen Leitung... face-wink


Manchmal denke ich ja ... face-smile