2013-08-01 1 views
0

Я написал программу, которая вычисляет HASH всех файлов в папке и сохраняет файл xml. теперь моя цель состоит в том, что я хочу дать папку для оценки, явно из-за пределов программы.Как я могу ввести параметр явно извне в программу в vbscript?

Dim WshShell, oExec, input 
Set WshShell = CreateObject("WScript.Shell") 
Set oExec =_ 
    WshShell.exec("C:\Users\Administrator\Downloads\fciv.exe -md5 -r -xml _ 
    d.xml C:\openssl") 

input = "" 

Do While oexec.status=0 


WScript.Sleep 5000 
Loop 

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

Dim WshShell, oExec, strin 
Set WshShell = CreateObject("WScript.Shell") 
strin= inputbox("folder") 
Set oExec =_ 
    WshShell.exec("C:\Users\Administrator\Downloads\fciv.exe -md5 -r -xml ex.xml strin") 
input = "" 
Do While oexec.status=0* 

WScript.Sleep 1000 
Loop 

это не работает :(Просьба помочь. что именно изгоняются я использовать Чет? и как я даю один и тот же вход, используя CMD файл ???

ответ

1

Вы просто нужно использовать оператор конкатенации & построить командную строку:.

Dim WshShell, oExec, strin 
Set WshShell = CreateObject("WScript.Shell") 
strin= inputbox("folder") 
Set oExec =_ 
    WshShell.exec("C:\Users\Administrator\Downloads\fciv.exe -md5 -r -xml ex.xml """ & strin & """") 
input = "" 
Do While oexec.status=0 
    WScript.Sleep 1000 
Loop 

я взял на себя смелость добавления соответствующих двойные кавычки в случае, если входной путь содержит пробелы, вы можете добавить в некоторой проверки путь, например:

dim fso: set fso = CreateObject("Scripting.FileSystemObject") 
if not fso.FolderExists(strin) then 
    WScript.Echo strin & " not found" 
    WScript.Quit 1 
end if 
+1

Причина этого заключается в том, что VBScript не расширяет переменные внутри строк. –

+0

спасибо много брату :) –

+0

как я могу передать параметр, используя cmd-файл вместо ввода. Является ли это возможным? –