Как мне вызвать команду PowerShell в VBA? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть следующая команда, которая протестирована и работает в PowerShell:

(new-object -com shell.application).windows() 
    | where {$_.Type  -eq ""HTML Document"" -and $_.LocationURL -match ""$locationurmatch""} 
    | select -last 1 > test918.txt

В Microsoft Access у меня есть следующий код VBA, в котором я пытаюсь выполнить эту команду PowerShell, но она НЕ создаеттекстовый файл, как и предполагалось:

pscmd = "PowerShell.exe (new-object -com shell.application).windows() | where {$_.Type  -eq ""HTML Document"" -and $_.LocationURL -match ""$locationurmatch""} | select -last 1 > test918.txt"
Shell(pscmd)

Однако следующий код создает выходной файл с напечатанным текстом:

pscmd = "PowerShell.exe 'test' > thisisatest.txt"
Shell(pscmd)

Я напечатал «pscmd» в отладчике и скопировали вставил результат в PowerShell, и он выполняется без ошибок.Это наводит меня на мысль, что команда PowerShell может быть неправильно отформатирована для VBA.

1 Ответ

0 голосов
/ 18 сентября 2018

Не смешивайте PS и CMD.Заменить > test918.txt на | Out-File test918.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...