.net 大神请进

2022-01-12 16:43:45 +08:00
 ThirdWorld

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

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

想知道点解( why )。。。

2888 次点击
所在节点    程序员
31 条回复
wangsyi13
2022-01-12 18:02:33 +08:00
看看 powershell 文档,先手动执行下这语句看看,确定没问题了再放进代码
这问题跟.net 关系不大
提示的意思是 Remove-MobileDevice 这个方法没有 Confirm:$false 这个参数,是不是传参语法不对,查 powershell 文档
wangsyi13
2022-01-12 18:03:05 +08:00
@wangsyi13 为什么前面参数是空格,后面参数用的冒号,都支持么?
yefuchao
2022-01-12 18:05:10 +08:00
你先看看直接用 powershell 能不能把这个命令调用成功。这串字符串也没必要用 string.Format 。
wangsyi13
2022-01-12 18:05:16 +08:00
@wangsyi13 还有 string.Format 干啥的,就一个完整字符串
mydebug
2022-01-12 18:13:14 +08:00
@ThirdWorld
string cmd = "Remove-MobileDevice -Identity androidc287586998 -Confirm:$false";
用这个试试看
afirefish
2022-01-12 18:49:55 +08:00
luzemin
2022-01-12 19:27:30 +08:00
与.NET C#的 String.Format 有毛关系,这个 PowerShell 命令执行有问题。
你把这个命令在 PowerShell 控制台执行一下试试,带着-WhatIf 参数避免真的执行
ThirdWorld
2022-01-13 09:58:18 +08:00
@mydebug 试过的了
ThirdWorld
2022-01-13 09:58:42 +08:00
@luzemin 控制台单独运行没毛病
flyingyasin
2022-01-13 13:25:37 +08:00
C#的字符串里用$+var 会被转译成 var 的值吧
RecursiveG
2022-01-13 14:38:24 +08:00
PowerShell 里 `-Confirm:$false` 是个特殊用法: https://stackoverflow.com/questions/8525572
看上去需要用`AddParameter`: https://stackoverflow.com/questions/29361629

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/827855

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX