0

我有一个 Powershell 脚本可以合并到 Excel VBA 宏中。请参考这个问题: Powershell Regex: Replace only multiple spaces with tabs

这是有问题的代码 Convert_To_Tab_Delimited.ps1:

gc 'foo.txt'| % { $_ -replace '  +',"`t" } | set-content "<my path>\temp.txt"

我需要让 'foo.txt' 成为我传递给它的 VBA 变量。基本上是从 VBA 中的选择文件对话框中获得的路径字符串。此语句将调用 Powershell 文件:

Shell(“powershell.exe -ExecutionPolicy Unrestricted <pathname>\Convert_To_Tab_Delimited.ps1″, 1)

有没有办法将字符串变量作为参数传递给被调用的 Powershell 脚本?对此的任何帮助将不胜感激!

4

1 回答 1

0

您只需要在脚本顶部定义参数:

param([string]$path)
$content = [IO.File]::ReadAllText($path)
# etc.

在 VBA 中,您需要传递参数:

Shell("powershell.exe -ExecutionPolicy Unrestricted -File <pathname>\Convert_To_Tab_Delimited.ps1 -path """ & pathVariable & """", 1)
于 2013-06-11T01:41:28.113 回答