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

.net 大神请进

  •  
  •   ThirdWorld · 2022-01-12 16:43:45 +08:00 · 2629 次点击
    这是一个创建于 807 天前的主题,其中的信息可能已经有所发展或是发生改变。

    。net 执行 string cmd = string.Format("Remove-MobileDevice -Identity 'androidc287586998' -Confirm:$false");

    报错 invoker error:找不到与参数名称“Confirm:$false”匹配的参数。

    想知道点解( why )。。。

    31 条回复    2022-01-13 14:38:24 +08:00
    abcbuzhiming
        1
    abcbuzhiming  
       2022-01-12 16:50:49 +08:00
    报错提示都给出了啊,它认不出你这个$false ,我看了一下,string.Format 似乎没有这种格式的匹配字符串,你是从哪里看来的代码?
    ch2
        2
    ch2  
       2022-01-12 16:55:11 +08:00
    查一下 string.Format 文档
    yefuchao
        3
    yefuchao  
       2022-01-12 16:55:21 +08:00
    string cmd = string.Format("Remove-MobileDevice -Identity 'androidc287586998' -Confirm:{0}",false);
    camliar
        4
    camliar  
       2022-01-12 16:57:29 +08:00
    string cmd = $"Remove-MobileDevice -Identity 'androidc287586998' -Confirm:{false}";
    yor1g
        5
    yor1g  
       2022-01-12 16:58:20 +08:00
    $"Remove-MobileDevice -Identity 'androidc287586998' -Confirm:{false}"
    xuanbg
        6
    xuanbg  
       2022-01-12 16:59:31 +08:00
    可以这样把变量拼进字符串:string cmd = $"Remove-MobileDevice -Identity 'androidc287586998' -Confirm:{变量}";
    ThirdWorld
        7
    ThirdWorld  
    OP
       2022-01-12 17:23:19 +08:00
    @yefuchao 还是一样呢
    ThirdWorld
        8
    ThirdWorld  
    OP
       2022-01-12 17:23:36 +08:00
    @yor1g 还是一样
    nulIptr
        9
    nulIptr  
       2022-01-12 17:23:38 +08:00
    ThirdWorld
        10
    ThirdWorld  
    OP
       2022-01-12 17:23:50 +08:00
    @xuanbg 还是一样
    ThirdWorld
        11
    ThirdWorld  
    OP
       2022-01-12 17:24:16 +08:00
    @camliar 还是一样
    ThirdWorld
        12
    ThirdWorld  
    OP
       2022-01-12 17:24:56 +08:00
    @nulIptr 会跟。net 版本有关系吗。
    liuhan907
        13
    liuhan907  
       2022-01-12 17:25:30 +08:00
    我想知道你这是在格式化啥,你这里没有任何格式串参数。另外你这个报错是 pwsh 给的又不是 C#。
    ThirdWorld
        14
    ThirdWorld  
    OP
       2022-01-12 17:26:49 +08:00
    @liuhan907 一个安卓的设备啊,上面不是有一串 ID 吗
    liuhan907
        15
    liuhan907  
       2022-01-12 17:28:28 +08:00
    我是说你调用这个方法目的。按你的调用方式不会产生任何效果,你最好去看一下 string.Format 的文档。
    ThirdWorld
        16
    ThirdWorld  
    OP
       2022-01-12 17:35:28 +08:00
    @liuhan907 好的
    MonoLogueChi
        17
    MonoLogueChi  
       2022-01-12 17:38:30 +08:00
    现在一个很关键的问题是,网友们咱们搞不懂你要做什么,建议把想要的字符串写出来,然后让网友们帮你来拼
    mydebug
        18
    mydebug  
       2022-01-12 17:52:22 +08:00
    Remove-MobileDevice 这是个命令行程序吗?
    如果是的话应该是 Remove-MobileDevice 这个程序没有“Confirm:$false”这个参数
    Mithril
        19
    Mithril  
       2022-01-12 17:54:11 +08:00
    你这就是个 string ,format 个啥。。。
    ThirdWorld
        20
    ThirdWorld  
    OP
       2022-01-12 17:54:16 +08:00
    @mydebug 删除设备 id 命令
    wangsyi13
        21
    wangsyi13  
       2022-01-12 18:02:33 +08:00
    看看 powershell 文档,先手动执行下这语句看看,确定没问题了再放进代码
    这问题跟.net 关系不大
    提示的意思是 Remove-MobileDevice 这个方法没有 Confirm:$false 这个参数,是不是传参语法不对,查 powershell 文档
    wangsyi13
        22
    wangsyi13  
       2022-01-12 18:03:05 +08:00
    @wangsyi13 为什么前面参数是空格,后面参数用的冒号,都支持么?
    yefuchao
        23
    yefuchao  
       2022-01-12 18:05:10 +08:00
    你先看看直接用 powershell 能不能把这个命令调用成功。这串字符串也没必要用 string.Format 。
    wangsyi13
        24
    wangsyi13  
       2022-01-12 18:05:16 +08:00
    @wangsyi13 还有 string.Format 干啥的,就一个完整字符串
    mydebug
        25
    mydebug  
       2022-01-12 18:13:14 +08:00
    @ThirdWorld
    string cmd = "Remove-MobileDevice -Identity androidc287586998 -Confirm:$false";
    用这个试试看
    afirefish
        26
    afirefish  
       2022-01-12 18:49:55 +08:00
    luzemin
        27
    luzemin  
       2022-01-12 19:27:30 +08:00
    与.NET C#的 String.Format 有毛关系,这个 PowerShell 命令执行有问题。
    你把这个命令在 PowerShell 控制台执行一下试试,带着-WhatIf 参数避免真的执行
    ThirdWorld
        28
    ThirdWorld  
    OP
       2022-01-13 09:58:18 +08:00
    @mydebug 试过的了
    ThirdWorld
        29
    ThirdWorld  
    OP
       2022-01-13 09:58:42 +08:00
    @luzemin 控制台单独运行没毛病
    flyingyasin
        30
    flyingyasin  
       2022-01-13 13:25:37 +08:00
    C#的字符串里用$+var 会被转译成 var 的值吧
    RecursiveG
        31
    RecursiveG  
       2022-01-13 14:38:24 +08:00
    PowerShell 里 `-Confirm:$false` 是个特殊用法: https://stackoverflow.com/questions/8525572
    看上去需要用`AddParameter`: https://stackoverflow.com/questions/29361629
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2866 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:07 · PVG 21:07 · LAX 06:07 · JFK 09:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.