Откройте файл Excel с параметром, используя PowerShell - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть требование получить последний созданный файл .xlsm из определенной папки.Мне удалось добиться этого с помощью приведенного ниже кода powershell:

$dir = "\\test\folder1\"
$latest = Get-ChildItem -Path $dir *.xlsm | Sort-Object CreationTime -Descending | Select-Object -First 1
$filePath = $dir + $latest

Как только у меня есть файл, мне нужно запустить файл Excel и передать ему параметр.Раньше последний созданный файл не требовался (он использовал один главный файл), поэтому я использовал для запуска командный файл, который выглядел так:

start excel "\\test\folder\file.xlsm" /e/TestEnv

Затем, используя приведенный ниже код в VBA, я былвозможность выбрать параметр при выполнении Workbook_Open ():

Function CmdToSTr(Cmd As Long) As String
    Dim Buffer() As Byte
    Dim StrLen As Long

    If Cmd Then
        StrLen = lstrlenW(Cmd) * 2

        If StrLen Then
            ReDim Buffer(0 To (StrLen - 1)) As Byte
            CopyMemory Buffer(0), ByVal Cmd, StrLen
            CmdToSTr = Buffer
        End If
    End If
End Function

Я пытался вызвать много разных методов запуска powershell, и ни один из них, похоже, не содержит параметр, переданный в конце, включая

Start-Process -FilePath $filePath -ArgumentList "/TestEnv"


$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open($filePath)[TestEnv]

Любые предложения высоко ценятся

1 Ответ

0 голосов
/ 03 января 2019
$dir = "\\path"
$latest = Get-ChildItem -Path $dir *.xlsm | Sort-Object CreationTime -Descending | Select-Object -First 1
$filePath = $dir + $latest
start excel "`"$filepath`"/TestEnv"

Это решает мою проблему

...