[2003] scriptje maken om te kopiëren, lukt niet

Pagina: 1
Acties:

  • Hotdog
  • Registratie: Juni 2007
  • Laatst online: 26-12-2024
Hallo,

Al onze users binnen de LAN moeten vanaf maandag bij aanmelding op hun eigen w2k of wxp machine (bij aanmelding in domein) een icoontje op het bureaublad krijgen, waarmee ze een intranetpagina kunnen oproepen.

Nu heb ik in de Active Directory al gezet dat ze bij aanmelden het scriptje logon.bat moeten draaien, maar wat ik wil, werkt nog niet.

zover ben ik:
Eerst wat net use commando's, waaronder G:/
IF EXIST \%userprofile%\Bureaublad
xcopy G:\icoontje.url \%userprofile%\Bureaublad\ /y
ELSE
IF EXIST \%userprofile%\desktop
xcopy G:\icoontje.url \%userprofile%\desktop\ /y
ELSE echo filename. missing
exit


Met de IF EXIST opdrachten wil ik dat de batchfile kijkt of windows in het Engels of in het Nederlands geinstalleerd is.
Vervolgens moet de batch het bestandje van de G:\ die eerder al via een net use commando is gegeven wordt, worden gekopieerd naar c:\documents and settings\username.domeinnaam\desktop (of bureaublad uiteraard).

wie kan mij verder helpen, het lukt me namelijk niet echt.

Verwijderd

else bestaat niet in batch scripting.

if exist ...\bureaublad goto :buro
if exist...\desktop goto :desktop
echo als een van de vorige regels een match oplevert wordt ik niet geechoed.

:buro
xcopy doe je ding
if errorlevel 1 echo filecopy mislukt
goto :eof

:desktop
xcopy doe je ding
if errorlevel 1 echo filecopy mislukt
goto :eof

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Verwijderd schreef op dinsdag 28 augustus 2007 @ 18:04:
else bestaat niet in batch scripting.
Volgens "if /?" wel hoor? :P

Verwijderd

lol verrek (zat dat al in nt4? :) )

't is in ieder geval redelijk waardeloos omdat je if en else op dezelfde regel moet staan en dus ingewikkelde if/else statements totaal onleesbaar worden. Kan je beter goto's gebruiken geheel tegen alle nette programmeer regels in :)

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Ik weet niet precies wanneer het geintroduceerd is - overigens bedoelen ze met op dezelfde regel dus ook statements die tussen ()'s staan, dus je kan gewoon:

if 1 EQU 1 (
  echo whee
  echo heee
) else (
  echo boeee
  echo hoeee
)


doen :P

Verwijderd

ja ik begrijp... ben echter allang gewend om het zonder te doen.
pasgeleden nog een zo onbegrijpelijk mogelijke batch gemaakt, speciaal voor een collega die goto's wil vermijden :) (beetje a la de C wedstrijden voor meest obscure werkende code :))

@TS:

\%userprofile%\Bureaublad = \C:\...\...\... wat natuurlijk niet geldig is... ff die eerste \ weghalen.

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Anders VBScript, dan zien je users ook geen commandprompt voorbij flitsen ;)

http://www.microsoft.com/...ources/qanda/desktop.mspx

Het grote voordeel daarvan is dat de Desktop een Special ShellFolder is zodat je ook niet het hele pad hoeft te parsen ;)
Simpelweg je shortcut naar het target aanpassen en klaar :)

[ Voor 37% gewijzigd door alt-92 op 28-08-2007 20:44 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • Hotdog
  • Registratie: Juni 2007
  • Laatst online: 26-12-2024
dank iedereen wel!
ik er direct mee aan de slag.

inderdaad bestond IF/ELSE nog niet in de tijd dat windows 98se nog hét summum was.

Zo heb ik ook nog wat aan mijn dbase IV/3GL lessen... (in 1996)


8)

  • Hotdog
  • Registratie: Juni 2007
  • Laatst online: 26-12-2024
het is uiteindelijk zo geworden omdat het een en ander niet helemaal lukte:

cd slash
cd %userprofile%
if exist Bureaublad goto :buro

cd slash
cd %userprofile%
if exist Desktop goto :desktop



:buro
xcopy "\\server\netlogon\icoontje.url" "%userprofile%\Bureaublad" /y
if errorlevel 1 echo filecopy mislukt
goto :eof


:desktop
xcopy "\\server\netlogon\icoontje.url" "%userprofile\Desktop" /y
if errorlevel 1 echo filecopy mislukt
goto :eof


:eof
@pause



op zich heel simpel, alleen is het van belang dat bij gebruik van %userprofile% tussen aanhalingstekens staan, anders snapt dummy DOS het niet... 8)7

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Wat is "cd slash" ?

Kan je het niet optimaliseren naar zoiets:

cd %userprofile%
SET DesktopDir=Desktop
if exist Bureaublad set DesktopDir=Bureaublad

xcopy "\\server\netlogon\icoontje.url" "%userprofile%\Bureaublad" /y
if errorlevel 1 echo filecopy mislukt
goto :eof


Of nog mooier - imho -
@ECHO OFF

for /f "skip=2 tokens=3" %%i in ('reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do SET DesktopDir=%%i 

IF NOT EXIST "%DesktopDir%\Icoontje.url" copy "\\server\netlogon\icoontje.url" "%DesktopDir%" /y

  • Hotdog
  • Registratie: Juni 2007
  • Laatst online: 26-12-2024
Wat is "cd slash" ?
als ik "cd\" intiep, dan komt er in de tabel een horizontale lijn.

Verwijderd

cd /d %userprofile% ipv

cd\
cd %userprofile%

De /d maakt dat je ook van schijf kan wisselen, verder niet zo boeiend :P

[ Voor 12% gewijzigd door Verwijderd op 29-08-2007 11:36 ]

Pagina: 1