错误提示:未将'./RunCommandLine.ps1'识别为命令、函数、脚本文件或可操作程序的名称。

8
我们正在使用Microsoft Release Management 2013部署到Dev/Test/Prod。Build/Deploy服务器是MS2012。应用程序服务器是MS2008。我已经让它工作并且成功部署,但昨天开始出现了以下错误信息。它只是使用“运行命令行”在应用程序服务器上运行一个批处理文件,备份,设置Windows服务启动类型,停止服务等。如果我直接在应用程序服务器上运行批处理文件,它就可以正常运行。我根据这篇文章添加了更详细的日志记录,但没有收集到额外的信息以进行调试。服务器上的Powershell也没有最近更新过。

http://blogs.msdn.com/b/visualstudioalm/archive/2013/12/13/how-to-enable-detailed-logs-and-collect-traces-from-various-release-management-components.aspx

有人知道*.ps1文件应该放在哪里吗?我在本地和服务器上搜索,但找不到任何东西。有人遇到过这种情况吗?

错误信息:

The term './RunCommandLine.ps1' 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:21
+ ./RunCommandLine.ps1 <<<<  -FilePath '\\unc-path\batchfile.bat' -Arguments ''
    + CategoryInfo          : ObjectNotFound: (./RunCommandLine.ps1:String) [] , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

2个回答

11

当运行像./RunCommandLine.ps1这样的脚本时,脚本应该在当前工作目录(.)中。然而,根据您执行该语句的环境,工作目录可能不是您预期的。

以下是一些命令,可以让你以与你的脚本相同的方式确定当前的工作目录:

$PWD.Path
(Get-Location).Path
(Resolve-Path '.').Path

基本上有三种方法来处理这个问题:

  • 相对于当前工作目录指定 PowerShell 脚本的路径。
  • 将当前工作目录更改为 PowerShell 脚本的位置:

    Push-Location 'C:\some\folder'
    .\RunCommandLine.ps1
    Pop-Location
    
  • 使用完整路径运行PowerShell脚本:

    & 'C:\some\folder\RunCommandLine.ps1'
    

    调用操作符(&)允许您运行被定义为字符串的路径(例如因为它们包含空格),否则这些路径只会被回显。


5

尝试

powershell ./RunCommandLine.ps1

不,我假设它在起始目录中。否则,“./”没有任何意义。如果您以管理员身份打开powershell提示符,跳转到C:驱动器的根目录并运行“Get-ChildItem -Recurse | Where-Object { $_.Name -match 'RunCommandLine.ps1' }”,它应该能够找到它。它会输出一些权限错误,但仍会继续查找它可以访问的内容。 - Logan Jones
1
谢谢帮助,但是太多访问被拒绝了!哈哈 这个可以… dir /b /s c:\RunCommandLine.ps1 - Mark Fulton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接