我有一个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脚本?对此的任何帮助将不胜感激!
答案 0 :(得分: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)