脚本路径中的Powershell空间
我试图通过设置函数和别名来运行我编写的一些脚本,从而简化我执行这些脚本的方式。我目前有一些函数可以将我的目录更改为需要运行脚本的位置,但是当我尝试运行脚本时,我遇到以下错误:脚本路径中的Powershell空间,powershell,Powershell,我试图通过设置函数和别名来运行我编写的一些脚本,从而简化我执行这些脚本的方式。我目前有一些函数可以将我的目录更改为需要运行脚本的位置,但是当我尝试运行脚本时,我遇到以下错误: C:\Users\me\Desktop\BoB : The term 'C:\Users\me\Desktop\BoB' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spel
C:\Users\me\Desktop\BoB : The term 'C:\Users\me\Desktop\BoB' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At line:1 char:1
+ C:\Users\me\Desktop\BoB Tools\folderScannerV0.4.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\jteit\Desktop\BoB:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
功能是:
function run-scanner { "& 'C:\Users\me\Desktop\BoB Tools\folderScannerV0.4.ps1'" | Invoke-Expression }
我根据我找到的其他答案尝试了一些变化,但我一直得到相同的错误。我不希望删除路径上的空间,因为其他脚本成功地使用了它。从ISE运行脚本不会给我带来任何问题
理想情况下,我希望该函数还允许我在不更改工作目录的情况下在我想要的文件夹上运行脚本(每个脚本在静态位置的一组特定文件上工作,但其中一些使用$PWD获取该位置的文件夹)。
例如,在我的$profile文件中,我有一个函数:函数转到temp{cd“C:\Users\me\Desktop\Bob Tools\to be Formatted\temp”}
,我在执行上述脚本之前运行该函数。我希望在不更改工作目录的情况下将它们合并到一个命令中(这将使转到temp
功能冗余)
我做错了什么?您可以使用以下方法:
function run-scanner { . 'C:\Users\me\Desktop\BoB Tools\folderScannerV0.4.ps1' }
您可以仅使用以下功能:
function run-scanner { . 'C:\Users\me\Desktop\BoB Tools\folderScannerV0.4.ps1' }
除非您的脚本依赖于$PWD
,否则您应该能够使用调用操作符执行它:&
。正如其他海报所述,如果您需要脚本生成的变量,您可以使用点源(
),但这将导入所有全局对象(别名、变量、函数)对于您当前的范围。如果它确实依赖于$PWD
,您可以利用启动流程
和-WorkingDirectory
来避免更改您所在的位置
function Start-Scanner {
& "$HOME\Desktop\BoB Tools\folderScannerV0.4.ps1"
}
或
除非您的脚本依赖于$PWD
,否则您应该能够使用调用操作符执行它:&
。正如其他海报所述,如果您需要脚本生成的变量,您可以使用点源(
),但这将导入所有全局对象(别名、变量、函数)对于您当前的范围。如果它确实依赖于$PWD
,您可以利用启动流程
和-WorkingDirectory
来避免更改您所在的位置
function Start-Scanner {
& "$HOME\Desktop\BoB Tools\folderScannerV0.4.ps1"
}
或
这似乎让我达到了90%的目标,但当我从ISE运行函数时,一个power shell窗口会短暂弹出一个错误,我无法读取,脚本也没有执行。我的配置文件中的函数与您的几乎相同,只是有一些路径更正。@jasonmadesomething这可能是您的sc的错误这超出了您所问的范围。为什么您只在启动控制台或更现代的VSCode时使用ISE?我没有使用visual studio的权限,当我从powershell控制台尝试它时,它根本无法识别该功能…事实上,即使我输入
和$profile
@EBGree,它也会出错n我相信我会的。我的所有其他功能(主要是cd快捷方式)都能正常工作。它位于C:\Users\me\Documents\WindowsPowerShell\Microsoft.PowerShellISE\U配置文件中。ps1@jasonmadesomething顺便说一句,VSCode是免费的(成本和开源一样)。如果您经常编写powershell,我强烈建议您在必要时参与管理,以访问它。这似乎让我达到了90%的目标,但当我从ISE运行函数时,会短暂弹出一个power shell窗口,其中包含一个我无法读取的错误,并且脚本未执行。我的配置文件中存在的函数几乎完全相同o您所拥有的,只是一些路径更正。@jasonmadesomething这可能是您的脚本中的错误,超出了您要求的范围。为什么您只是在启动控制台或更现代的VSCode之类的东西时使用ISE?我没有使用visual studio的权限,当我从powershell控制台尝试它时,它是doesn根本无法识别该函数……事实上,即使我输入&$profile
@EBGreen,它也会出错。我相信我能识别。我的所有其他函数(主要是cd快捷方式)都能正常工作。它位于C:\Users\me\Documents\WindowsPowerShell\Microsoft.PowerShellISE\U profile。ps1@jasonmadesomething顺便说一句,VSCode是免费的(成本和开源一样)。如果您经常编写powershell,我强烈建议您在必要时参与管理,以访问它。