Макрос VBA для запуска PowerShell Command - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь создать макрос, который мог бы переименовать все файлы с расширением ".docx" в папке.

Команда PowerShell работает при непосредственном использовании, но при использовании через код VBA, он не выполняется.

Sub test()
    Dim retval
    Dim pscmd

    pscmd = "PowerShell -ExecutionPolicy Bypass -Command ""Get-ChildItem -Path *.docx -Recurse | Rename-Item -NewName {$_.Name.Substring(0,7) + $_.Extension }"""

    retval = Shell(pscmd, vbNormalFocus)

    Debug.Print pscmd
End Sub

Сценарий выполняется без ошибок компиляции, но файлы не переименовываются.

Что мне нужно изменить?

1 Ответ

0 голосов
/ 24 октября 2018

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

Sub Test()
Dim retval, pscmd

pscmd = "PowerShell -ExecutionPolicy Bypass -Command ""Get-ChildItem -Path " & ThisWorkbook.Path & "\Files\" & " *.docx -Recurse | Rename-Item -NewName {$_.Name.Substring(0,7) + $_.Extension }"""
retval = Shell(pscmd, vbNormalFocus)

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