我正在尝试创建一个宏,该宏将能够重命名文件夹中所有扩展名为“ .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
脚本正在执行,没有编译错误,但是文件未重命名。
我需要更改什么?
答案 0 :(得分:0)
您必须提供文件所在的路径 尝试一下并更改适合您的路径
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