У меня есть очень простой VBScript, который выполняет скрипт PowerShell и пытаюсь передать несколько параметров.
Независимо от того, что я пробовал, он терпит неудачу и не принимает аргументы:
Dim WshShell
Dim cmdStr
Const ForReading = 1, ForWriting = 2 ,ForAppending = 8
curYear = Year(Date)
curMon = Month(Date)
curDay = Day(Date)
curHr = Hour(Time)
curMin = Minute(Time)
curSec = Second(Time)
datestg = curYear & curMon & curDay & curHr & curMin & curSec
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim inputDir
inputDir = InputBox("Input Directory ( can be full file path ) : ", "Message Box")
inputDirLen = Len(inputDir)
If inputDirLen > 0 Then
lastchar = Mid(inputDir, inputDirLen-1, 1)
If lastchar <> "\" Then
inputDir = inputDir & "\"
End If
End If
outFileMask = InputBox("Output file name mask ( files will be created in previously entered directory ) : ", "Message Box")
newDate = InputBox("Desired Date ( format of the date should be yyyy-mm-ddThh:mm:ss ) : ", "Message Box")
cmdStr = "%comspec% /c dir " & inputDir & "*.xml > dir.lst"
cmdrc = wshShell.Run(cmdStr, , True)
'create file system object
Set fs = CreateObject("Scripting.FileSystemObject")
Set fso = CreateObject("Scripting.FileSystemObject")
dirFileName = "dir.lst"
outFileName = inputDir & outFileMask & "_" & datestg &".xml"
Set infile = fs.OpenTextFile(dirFileName, ForReading)
Set fileOut = fso.CreateTextFile(outFileName, True)
Set objShell = CreateObject("WScript.Shell")
objShell.Run("powershell -NoExit -File .\psscript.ps1 " & infile)
infile.Close
fileOut.Close
WScript.Quit
Это даже не работает на objshell.Run
.Если я уберу аргумент, то он запустится, но в скрипте PowerShell произойдет сбой из-за пустых значений в аргументе.
Вот полный скрипт PowerShell:
$inputPath = $args[0]
$newDate = $args[1]
$outputPath = $args[2]
[xml]$xmlDoc = Get-Content $inputPath
foreach ($element in $xmlDoc.element1) {
$element.DateTime = $newDate
}
$xmlDoc.Save($outputPath)