V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
UnknownR
V2EX  ›  PowerShell

Powershell 内 function 的定义与调用问题

  •  
  •   UnknownR · 2019-04-26 11:30:45 +08:00 · 3225 次点击
    这是一个创建于 1799 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题:

    脚本开头定义了 function,其他地方的调用没问题,但是在某个地方调用就报了 term "<function name="">" is not recognized as a cmdlet, function...的问题</function>

    请问这种情况是会有哪些原因引起的呢?

    Code

    
    function B {}
    
    A $var_01
    
    A $var_02
    
    function C {
    
        $code = {
        	try{
                A $args[0] ([String]::Format("number", $var))
            }
        }
        
        B $code
    }
    
    第 1 条附言  ·  2019-04-26 12:07:50 +08:00
    code 应该是下面这个,帖子里格式出错被吃掉了一部分。

    错误是在 try 里面,报的是 term "A" is not recognized as cmdlet, function..., 但是 A 在其他地方调用的时候都没出问题,实在没有头绪

    ```
    function A {}

    function B {}

    A $var_01

    A $var_02

    function C {

    $code = {
    try{
    A $args[0] ([String]::Format("number", $var))
    }
    }

    B $code
    }
    ```
    3 条回复    2019-06-05 18:21:28 +08:00
    geelaw
        1
    geelaw  
       2019-04-26 12:13:40 +08:00
    你附加的代码的错误在于 try 没有 catch 或 finally
    UnknownR
        2
    UnknownR  
    OP
       2019-04-26 22:25:34 +08:00
    @geelaw 其实是有的。。。只是这边省略了
    ps1aniuge
        3
    ps1aniuge  
       2019-06-05 18:21:28 +08:00
    看了你写的脚本,我想起一首歌:生活像一团麻~~~
    你写的函数像一团麻。

    不应该这么写,套来套去。屎代码 ;)

    稍微大点的屎代码,把自己都绕糊涂了。
    看看阿里 java 军规之类的,代码规范吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2790 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:45 · PVG 22:45 · LAX 07:45 · JFK 10:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.