首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell使用调用-命令和获取-儿童项目没有交付内容

Powershell使用调用-命令和获取-儿童项目没有交付内容
EN

Stack Overflow用户
提问于 2016-02-26 13:49:57
回答 1查看 5.3K关注 0票数 1

我正在使用远程计算机(rem_comp)上的Powershell 4.0访问另一个计算机(此处安装的loc_comp;Powershell 2.0 ),以便获取列出的没有文件夹的文件数:

代码语言:javascript
复制
$var1 = 'H:\scripts'
Invoke-Command -Computername loc_comp -scriptblock {(Get-Childitem $var1 -recurse | Where-Object {!$_.PSIsContainer}).count}

但是,当在$var1中使用-scriptblock时,它不会传递任何内容(也不会传递任何错误消息)。

在使用时

代码语言:javascript
复制
$var1 = 'H:\scripts'
Invoke-Command -Computername loc_comp -scriptblock {(Get-Childitem $ -recurse | Where-Object {!$_.PSIsContainer}).count}

它起作用了!

注意:将var1从‘改为’无助。

在不使用Invoke-Command的情况下在本地运行命令也会遇到同样的问题。

怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-26 14:03:19

当您使用调用命令和脚本块时,scriptblock无法从外部范围(范围规则)访问您的params。

但是,您可以定义这些参数,并将它们与-Argumentlist一起传递。

示例:

代码语言:javascript
复制
 Invoke-Command -ComputerName "localhost" {param($Param1=$False, $Param2=$False) Write-host "$param1 $param2" } -ArgumentList $False,$True

以下内容应适用于您的示例:

代码语言:javascript
复制
Invoke-Command -Computername loc_comp -scriptblock {param($var1)(Get-Childitem $var1 -recurse | Where-Object {!$_.PSIsContainer}).count} -ArgumentList $var1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35653448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档