Войти

Показать полную графическую версию : [решено] Упростить Скрипт


asacyra
29-12-2019, 20:28
Написал скрипт. Есть варианты его доработать? Укажите на мои недостатки написания кода
'копирую файлы с сервера

Set oShell= CreateObject("WScript.Shell")
oShell.run "cmd.exe /C mkdir ""c:\Program Files (x86)\Tander\invgm"" "
oShell.run "cmd.exe /C copy ""\\server\whs\update\1.exe"" ""c:\Program Files (x86)\MySoft"" "
oShell.run "cmd.exe /C copy ""\\server\whs\update\2.exe"" ""c:\Program Files (x86)\MySoft"" "
oShell.run "cmd.exe /C copy ""\\server\whs\update\start.ini"" ""c:\Program Files (x86)\MySoft"" "

'Создаю ярлык на общем рабочем столе

set oShell = WScript.CreateObject ("WScript.Shell")
set WshShell = WScript.CreateObject ("WScript.Shell")
DesktopPath = oShell.SpecialFolders("AllUsersDesktop")
set oShellLink = oShell.CreateShortcut(DeskTopPath & "\MySoft.lnk" )
oShellLink.TargetPath = "C:\Program Files (x86)\MySoft\1.exe"
oShellLink.Arguments = "start.ini" '
oShellLink.WindowStyle = 1
oShellLink.WorkingDirectory = "C:\Program Files (x86)\MySoft\"
oShellLink.IconLocation = WshShell.ExpandEnvironmentStrings("c:\Program Files (x86)\MySoft\2.exe") & ", 0"
oShellLink.Save

'Создаю ярлык папке MySoft

set WshShell = WScript.CreateObject("WScript.Shell" )
set oShellLink = WshShell.CreateShortcut("c:\Program Files (x86)\MySoft\MySoft.lnk" )
oShellLink.TargetPath = "C:\Program Files (x86)\MySoft\1.exe"
oShellLink.Arguments = "start.ini"
oShellLink.WindowStyle = 1
oShellLink.Description = "Shortcut Script"
oShellLink.WorkingDirectory = "C:\Program Files (x86)\MySoft"
oShellLink.Save

'Запускаю ПО для докачки файлов

oShell.Run("""c:\Program Files (x86)\MySoft\MySoft.lnk""" )

Iska
30-12-2019, 14:17
1. Не требуете обязательного объявления переменных (Option Explicit).
2. Многократно задаёте одно и то же значение переменным (oShell, WshShell).
3. Не используете возможности WSH по работе с файловой системой, а продолжаете работать с интерперетатором команд, причём, неправильным образом (cmd.exe /C mkdir …, cmd.exe /C copy …).
4. Задаётесь на жёстко заданные пути и разрядность ОС вместо использования специальных методов (c:\Program Files (x86)), хорошо, что уже не всегда (.SpecialFolders("AllUsersDesktop")), но тем не менее.
5. Не используете конструкцию With … End With там, где есть смысл её использовать (группа команд с oShellLink'ами).
6. Используете код (вероятно, откуда-то скопированный), не вникая в его смысл (.ExpandEnvironmentStrings("c:\Program Files (x86)\MySoft\2.exe")), отчего получается бессмыслица.

asacyra
30-12-2019, 19:05
1. Не требуете обязательного объявления переменных (Option Explicit).
2. Многократно задаёте одно и то же значение переменным (oShell, WshShell).
3. Не используете возможности WSH по работе с файловой системой, а продолжаете работать с интерперетатором команд, причём, неправильным образом (cmd.exe /C mkdir …, cmd.exe /C copy …).
4. Задаётесь на жёстко заданные пути и разрядность ОС вместо использования специальных методов (c:\Program Files (x86)), хорошо, что уже не всегда (.SpecialFolders("AllUsersDesktop")), но тем не менее.
5. Не используете конструкцию With … End With там, где есть смысл её использовать (группа команд с oShellLink'ами).
6. Используете код (вероятно, откуда-то скопированный), не вникая в его смысл (.ExpandEnvironmentStrings("c:\Program Files (x86)\MySoft\2.exe")), отчего получается бессмыслица. »

Большое спасибо. Начал недавно изучать скрипты. Код брал с примеров. Критику учту для правильного написания




© OSzone.net 2001-2012