Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Добавление в *.VBS скрипт диалогового окна.

Ответить
Настройки темы
VBS/WSH/JS - [решено] Добавление в *.VBS скрипт диалогового окна.

Новый участник


Сообщения: 22
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip VBS скрипт.zip
(1.1 Kb, 8 просмотров)
Добрый день!

Помогите реализовать следующую задачу:

Имеется:

*.VBS скрипт при запуске которого с помощью криптографии автоматически подписываются, шифруются, архивируются и переименовываются файлы находящиеся в папке OUT. Файлы именуются согласно маске MIFNS.001, MIFNS.002, MIFNS.003 и т.д.

Если мне необходимо сделать так, чтобы нумерация начиналась не с 1, а с 3 (или любой другой цифры), я меняю значение строки nArjNumber =*, где * - номер начального файла.

Что нужно сделать:

При запуске скрипта должно сначала выводится диалоговое окно, которое просило бы ввести номер с которого будут начинать именоваться выходящие файлы, а потом уже идти шифрование и прочие процедуры.

В общем сделать так, чтобы в случае чего не приходилось лезть руками в скрипт и менять номер самому.

Сам скрипт во вложении.

'On Error Resume Next


strFnsXmlFolder = "D:\BankScheta2\base\OUT\"
const cMaxNum = 2000

Set sh = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")


m = Month(Now)
d = Day(Now)
y = Right(Year(Now), 2)
If m < 10 Then m = "0" & m
If d < 10 Then d = "0" & d
strDate = y & m & d
nArjNumber =1


Set folder = fso.GetFolder(strFnsXmlFolder)
If Not fso.FolderExists(strFnsXmlFolder) Then
MsgBox("Не найден каталог " & strFnsXmlFolder)
Wscript.Quit
End If

strFnsTempFolder = strFnsXmlFolder & "Temp\"
If Not fso.FolderExists(strFnsTempFolder) Then
fso.CreateFolder(strFnsTempFolder)
End If

If Not fso.FolderExists(strFnsTempFolder) Then
MsgBox("Не найден каталог " & strFnsTempFolder)
Wscript.Quit
End If



Function CreateFnsArj()
strNum = CStr(nArjNumber)
n = 3 - Len(strNum)
If n > 0 Then strNum = String( n, "0") + strNum

strArjPath = strFnsXmlFolder & "BN25811" & strDate & "0" & strNum & ".ARJ"

sh.Run "C:\ARH\arj32.exe a -e " & strArjPath & " " & strFnsTempFolder, 7, True

strMifnsPath = strFnsXmlFolder & "MIFNS." & strNum
' sh.Run "D:\BankScheta2\scsignex.exe -s -f" & file.Path & " -o" & strFnsXmlFolder & "sign.log -b1", 7, True
sh.Run "D:\BankScheta2\scsignex.exe -s -f" & strArjPath & " -o" & strFnsXmlFolder & "sign.log -b1", 7, True
sh.Run "C:\ARH\arj32.exe a -e " & strMifnsPath & " " & strArjPath, 7, True

fso.DeleteFile strFnsTempFolder & "*.*", True
nArjNumber = nArjNumber + 1
End Function



fso.DeleteFile strFnsTempFolder & "*.*", True


strFileList = strFnsXmlFolder & "xmlfilelist.lst"
set fList = fso.OpenTextFile(strFileList, 2, True)
nCount = 0

Set folder = fso.GetFolder(strFnsXmlFolder)
For each file in folder.files
If (UCase(fso.GetExtensionName(file.Path)) = "XML") Then
fList.WriteLine(file.Path)
nCount = 1
End If
Next

fList.Close

If nCount = 0 Then
MsgBox("В каталоге " & strFnsTempFolder & "отсутствуют XML-файлы" )
Wscript.Quit
End If


sh.Run "C:\WINNT\asrkeyw.exe", 7, True
sh.Run "subst A: /d", 7, True
sh.Run "subst A: D:\BankScheta2\MGTU", 7, True

sh.Run "D:\BankScheta2\scsignex.exe -s -l" & strFileList & " -o" & strFnsXmlFolder & "sign.log -b1", 7, True

sh.Run "subst A: /d", 7, True
sh.Run "subst A: D:\BankScheta2\CUKS", 7, True

sh.Run "D:\BankScheta2\scsignex.exe -e -a0020 -l" & strFileList & " -o" & strFnsXmlFolder & "crypt.log -b1", 7, True

sh.Run "subst A: /d", 7, True
sh.Run "subst A: D:\BankScheta2\MGTU", 7, True

nCount = 1
Set folder = fso.GetFolder(strFnsXmlFolder)
For each file in folder.files
If (UCase(fso.GetExtensionName(file.Path)) = "XML") Then
fso.CopyFile file.Path, strFnsTempFolder, True

If nCount = cMaxNum Then
CreateFnsArj()
nCount = 0
End If

nCount = nCount + 1
End If
Next


If nCount > 1 Then
CreateFnsArj()
End If

' sh.Run "subst A: /d", 7, True

Отправлено: 13:01, 11-02-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Замените:
Код: Выделить весь код
nArjNumber =1
на:
Код: Выделить весь код
nArjNumber = CInt(Trim(InputBox("Enter start number", "Enter number", 1)))

Отправлено: 13:37, 11-02-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 22
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, спасибо!

А можно ли сделать так, чтобы по нажатию кнопки "Cancel" скрипт полностью прекращал свою работу? Сейчас он валится с ошибкой (см. скриншот). Жалуется на 17 строку "nArjNumber = CInt(Trim(InputBox("Enter start number", "Enter number", 1)))". Видимо после нажатия отмены хочет продолжать свою работу, но ничего не получается.


Отправлено: 14:44, 11-02-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Замените в оригинальном скрипте ту же часть на:
Код: Выделить весь код
Dim strValue

strValue = Trim(InputBox("Enter start number", "Enter number", 1))

If Len(strValue) = 0 Then
	WScript.Quit 1
End If

If Not IsNumeric(strValue) Then
	WScript.Echo "Need numeric value"
	WScript.Quit 2
End If

nArjNumber = CInt(strValue)
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:28, 11-02-2015 | #4


Новый участник


Сообщения: 22
Благодарности: 1

Профиль | Отправить PM | Цитировать


Iska, всё получилось! Большое Вам спасибо!

Отправлено: 16:11, 11-02-2015 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Добавление в *.VBS скрипт диалогового окна.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - подвисает после закрытия диалогового окна woffka@vk Microsoft Windows 7 3 17-04-2012 16:56
Ошибка - [решено] Зеркальное отображение диалогового окна AnIG Microsoft Windows 2000/XP 4 22-04-2011 10:40
MFC - Открытие диалогового окна MFC vayak Программирование и базы данных 1 23-12-2009 23:39
Удаление ярлыка из диалогового окна автозапуска larios Microsoft Windows 2000/XP 1 03-02-2007 09:38
Пропал элемент диалогового окна antOOn Microsoft Windows 2000/XP 8 29-01-2005 00:19




 
Переход