vb programma voor het maken van .cmd script

Status
Niet open voor verdere reacties.

infinitey

Gebruiker
Lid geworden
15 jun 2012
Berichten
20
beste,

ik heb een vraag die volgens mij best ingewikkeld is.
op mijn stage plek heb ik een update server gemaakt, dit omdat hier geen domein is en ze dit ook niet willen aan schaffen heb ik deze manier bedacht:

1 script op de pc als die opstart :

Code:
Dim filesys, file, moddate1, moddate2
Set filesys = CreateObject("Scripting.FileSystemObject")
Set file = filesys.Getfile("d:\nasversion.txt")
moddate1 = file.DateLastModified
set file = filesys.Getfile("\\otwmnas\update\nasversion.txt")
moddate2 = file.DateLastmodified
if moddate1 < moddate2 Then
Dim objshell
set objshell = Wscript.CreateObject("WScript.Shell")
 objShell.Run "\\otwmnas\update\test2.cmd"
end if

aan deze code hoeft nooit iets verandert te worden!!!

maar nu komt het 2de als dus Nasversion.txt niet overeen komt met die van de update server laat hij dit script lopen:

Code:
@echo ******** chrome installatie **************

if not exist "d:\ChromeStandaloneSetup.exe" (
  copy \\otwmnas\update\Chrome\ChromeStandaloneSetup.exe "d:\" /y 
  copy \\otwmnas\update\Chrome\ChromeStandaloneSetup.exe "d:\" /y 
  start d:\ChromeStandaloneSetup.exe )

@echo ******** Achtergrond installatie ***************

if not exist "d:\image.bmp" (
copy \\otwmnas\update\wallpaper\image.bmp "D:\" /y
copy \\otwmnas\update\wallpaper\image.bmp "D:\" /y
copy \\otwmnas\update\wallpaper\image.bmp "C:\\Documents and Settings\\Administrator\\Local Settings\\Application Data\\Microsoft\\" /y
copy \\otwmnas\update\wallpaper\image.bmp "C:\\Documents and Settings\\Administrator\\Local Settings\\Application Data\\Microsoft\\" /y
regedit -s \\otwmnas\update\wallpaper\wallpaper.reg
)


if not exist "d:\orbis.theme" (
copy \\otwmnas\update\wallpaper\orbis.theme "d:\" /y
copy \\otwmnas\update\wallpaper\orbis.theme "d:\" /y
start d:\orbis.theme 
)


@echo ********* Bookmarks chrome *******************

copy \\otwmnas\update\Chrome\Bookmarks\Bookmarks "C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\" /y
copy \\otwmnas\update\Chrome\bookmarks\Bookmarks "C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\" /y
copy \\otwmnas\update\Chrome\Settings\Preferences "C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\" /y
copy \\otwmnas\update\Chrome\Settings\Preferences "C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\User Data\Default\" /y


@echo ***************** printers ******************

IF EXIST RUNDLL32 printui.dll,PrintUIEntry /n \CanonStationpleinEtage2 /dl
IF EXIST RUNDLL32 printui.dll,PrintUIEntry /n \CanonStationpleinEtage3 /dl


IPCONFIG |FIND "IP" > %temp%\TEMPIP.txt
FOR /F "tokens=2 delims=:" %%a in (%temp%\TEMPIP.txt) do FOR /F "tokens=1,2,3 delims=." %%b in ("%%a") do set SUBNET=%%b.%%c.%%d
del %temp%\TEMPIP.txt
set SUBNET=%SUBNET:~1%

if "%SUBNET%"=="10.101.10" (
regedit -S \\otwmnas\update\printers\printerport_10.101.10.reg
regedit -S \\otwmnas\update\printers\Printer1.reg
regedit -S \\otwmnas\update\printers\Printer2.reg
regedit -s \\otwmnas\update\printers\defaultprt.reg
) else (
regedit -S \\otwmnas\update\printers\CanonIr1024i.reg
)
if "%SUBNET%"=="10.101.2" regedit -S \\otwmnas\update\printers\printerport_10.101.2.reg
if "%SUBNET%"=="10.101.3" regedit -S \\otwmnas\update\printers\printerport_10.101.3.reg
if "%SUBNET%"=="10.101.4" regedit -S \\otwmnas\update\printers\printerport_10.101.4.reg
if "%SUBNET%"=="10.101.5" regedit -S \\otwmnas\update\printers\printerport_10.101.5.reg
if "%SUBNET%"=="10.101.6" regedit -S \\otwmnas\update\printers\printerport_10.101.6.reg
if "%SUBNET%"=="10.101.7" regedit -S \\otwmnas\update\printers\printerport_10.101.7.reg
if "%SUBNET%"=="10.101.8" regedit -S \\otwmnas\update\printers\printerport_10.101.8.reg


IF EXIST RUNDLL32 printui.dll,PrintUIEntry /n \CanonStationpleinEtage2 /dl
IF EXIST RUNDLL32 printui.dll,PrintUIEntry /n \CanonStationpleinEtage3 /dl

@echo *************** cardreader installatie *********************
if not exist "C:\Program Files\A.E.T. Europe B.V\SafeSign\Management Utility\tokenadmin.exe" (
  msiexec /i \\otwmnas\update\Cardreader\safesign.msi /quiet /qn /norestart
) else (
  if not exist "C:\Program Files\HID Global\OMNIKEY 3x21\readme_cm3x21.txt" (
    msiexec /i \\otwmnas\update\Cardreader\OMNIKEY3x21_x86_for_R1_2_2_8.msi /quiet /qn /norestart
  ) 
)


@echo *********** afsluiting van de update *****************

copy \\otwmnas\update\nasversion.txt "d:\" /y
copy \\otwmnas\update\nasversion.txt "d:\" /y

nu is mijn oude stage begleider niet zo handig met dos commando's :P

mijn vraag is dus is er een manier om een progje te schrijven zodat bijv.

als er aan gevinkt word copy in het programma dat er in een tekst file weg geschreven word:

copy \\

en dan in het programma het bestand aan gegeven moet worden dus de locatie en waar het bestand naar doe moet dat er dan komt te staan:

copy \\bestandpad\mapje\naam.exe "d:\"

is dit mogelijk zo ja hoe doe ik dit?
alvast bedankt voor jullie hulp.

(ps ik ben al klaar op deze stage plaats dus dit is geen school opdracht!!)
 
o.a. enGenius en Cisco gebruiken een dergelijke techniek. De webinterface van de apparatuur genereerd de bijbehorende commando's. Die worden vervolgens uitgevoerd. Misschien kun je nog iets vinden over de werking van dit geheel.

Als het een beperkt aantal handelingen is kun je dit nog wel in vb (of een andere taal) programmeren. Betreft het veel commando's met nog meer parameters dan wordt het een behoorlijk project.
 
dat het een behoorlijk project word daar was ik al achter...

dus jij zegt niet in vb doen maar een web interface gebruiken?
 
Dat was enkel een voorbeeld. Los van de programmeertaal heb je een ander probleem. Het uit je hoofd leren van te typen commando's is namelijk maar 1 deel van het probleem. Als je dus geen idee hebt wat je doet dan gaat een mooie interface met alleen vinkjes en invulvakjes je niet veel verder helpen als gebruiker.
 
Volgens mij is het goed te doen in vb. Ik heb meerdere voorbeelden van soortgelijke programma's (gemaakt in vb) gezien, alleen dan meestal gemaakt voor html.

Verder denk ik dat het voor simpelere commands (bijv copy) wel zin heeft, maar als je begeleider grotere scripts wil gaan maken, zal hij zich daar toch echt meer in moeten verdiepen. Ongeacht of hij het dan alsnog op een makkelijke manier kan maken.

Dus ik zal zeggen dat als het bij simpele commands als 'copy' blijft, het nog wel nut heeft. Als het ook nog over moeilijke commands gaat, dan zal de gebruiker (in dit geval de begeleider) zich er zelf in moeten verdiepen.


Dan over het maken van het programma zelf (in vb):
Voor het wegschrijven van tekst naar een bestand kan je even hiernaar kijken: http://www.dotnetperls.com/streamwriter-vbnet.
Om te kijken of een bestand al bestaat kan je hiernaar kijken: http://msdn.microsoft.com/en-us/library/system.io.file.exists.aspx.

Ik denk dat je dan al een eind op weg bent.

Succes!
MartinJM
 
hey,

@rogerS bedankt voor de hulp het heeft me tog een stukje wijzer gemaakt.

@MartinJM, ja het blijft bij een paar simpele commands. het gaat zich vooral om de format dus als et copy word aan gevinkt en in de tekst file copy komt te staan op de juiste plaats enzo. ik ga een wat puzelen met de link die je me hebt gegeven en anders horen jullie nog van me. uiteraard zal ik een melding maken en het progje posten als het klaar is ^^
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan