Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种固定的方法可以使用写主机在Powershell中记录当前行? 我想从C++宏中记住一些东西,我可以输出当前行数。这是完全相同的代码,但预处理器将用当前行替换宏。我希望PowerShell中有类似的内容,这样我就可以知道当TFS 2015告诉我第6行有错误时是什么意思,但第6行是一条注释。显然,我看到的和PowerShell“认为”的是第6行的不同之处。_Powershell - Fatal编程技术网

是否有一种固定的方法可以使用写主机在Powershell中记录当前行? 我想从C++宏中记住一些东西,我可以输出当前行数。这是完全相同的代码,但预处理器将用当前行替换宏。我希望PowerShell中有类似的内容,这样我就可以知道当TFS 2015告诉我第6行有错误时是什么意思,但第6行是一条注释。显然,我看到的和PowerShell“认为”的是第6行的不同之处。

是否有一种固定的方法可以使用写主机在Powershell中记录当前行? 我想从C++宏中记住一些东西,我可以输出当前行数。这是完全相同的代码,但预处理器将用当前行替换宏。我希望PowerShell中有类似的内容,这样我就可以知道当TFS 2015告诉我第6行有错误时是什么意思,但第6行是一条注释。显然,我看到的和PowerShell“认为”的是第6行的不同之处。,powershell,Powershell,首先,定义以下别名: function Get-ScriptLineNumber { return $MyInvocation.ScriptLineNumber } function Get-ScriptName { return $MyInvocation.ScriptName } new-item alias:__LINE__ -value Get-ScriptLineNumber new-item alias:__FILE__ -value Get-ScriptName 要测试它们,

首先,定义以下别名:

function Get-ScriptLineNumber { return $MyInvocation.ScriptLineNumber }
function Get-ScriptName { return $MyInvocation.ScriptName }

new-item alias:__LINE__ -value Get-ScriptLineNumber
new-item alias:__FILE__ -value Get-ScriptName 
要测试它们,请将下面的代码保存在脚本文件中(我们称之为“test.ps1”),并从powershell提示符调用它:

function Hello                                                              #1
{                                                                           #2
    param (                                                                 #3
            [parameter(Mandatory = $true)] [string] $receiver               #4
    )                                                                       #5
                                                                            #6
    $i = 0                                                                  #7
                                                                            #8
    # Say Hello                                                             #9
    # Another comment                                                       #10
    # and yet another one                                                   #11
                                                                            #12
    Write-Host "Line:" $(__LINE__) "File:" $(__FILE__) "Hello $receiver"    #13
}                                                                           #14

Hello "World"
运行它时,将得到以下结果:

Line: 13 File: D:\Temp\test.ps1 Hello World

PowerShell错误包括发生错误的代码行的文本。这正是我要查找的+1对于C++宏命名,不是我实际上是一个粉丝。