首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将路径传递给函数使Get- files项目返回更多文件。

将路径传递给函数使Get- files项目返回更多文件。
EN

Stack Overflow用户
提问于 2014-12-17 14:47:44
回答 1查看 1.9K关注 0票数 1

我有一个简单的命令,它列出了脚本文件夹中的所有文件

代码语言:javascript
复制
$files = Get-ChildItem -Path $PSScriptRoot
foreach ($file in $files)
{
    Write-Host $file
}

它给了我以下输出:

代码语言:javascript
复制
PS C:\Users\ivu> D:\jenkins\workspace\DeploymentInstaller\usemod.ps1
functions.psm1
installClient.ps1
installClientParams.ps1
usemod.ps1

问题:现在发生了我无法解释的行为,当我用函数和过滤器包装代码时,Get-ChildItem突然返回更多的文件。

有人能解释一下这种行为吗?

代码语言:javascript
复制
Function funct($path, $regex){
    Write-Host $path
    Write-Host $regex

    $files = Get-ChildItem -Path $path -Filter $regex
    foreach ($file in $files)
    {
        Write-Host $file
    }
}
funct($PSScriptRoot, "*")

输出

代码语言:javascript
复制
PS C:\Users\ivu> D:\jenkins\workspace\DeploymentInstaller\usemod.ps1
functions.psm1
installClient.ps1
installClientParams.ps1
usemod.ps1
C:\Users\ivu\.dbvis
C:\Users\ivu\.eclipse
C:\Users\ivu\.squirrel-sql
C:\Users\ivu\.swt
C:\Users\ivu\Citrix
C:\Users\ivu\Contacts
C:\Users\ivu\Desktop
C:\Users\ivu\Documents
C:\Users\ivu\Downloads
C:\Users\ivu\faab
C:\Users\ivu\Favorites
C:\Users\ivu\Links
C:\Users\ivu\Music
C:\Users\ivu\Pictures
C:\Users\ivu\Saved Games
C:\Users\ivu\Searches
C:\Users\ivu\Tracing
C:\Users\ivu\transfer
C:\Users\ivu\Videos
C:\Users\ivu\workspace
C:\Users\ivu\.jboss-cli-history
C:\Users\ivu\bla.txt
C:\Users\ivu\Icc.state
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-17 14:58:23

你不正确地调用这个函数。通过在参数中使用逗号,您实际上传递了一个数组,因此您基本上是在说:

代码语言:javascript
复制
Get-ChildItem D:\jenkins\workspace\DeploymentInstaller
Get-ChildItem C:\Users\ivu

如果按如下方式调用,您将得到预期的结果:

代码语言:javascript
复制
funct $PSScriptRoot "*"

我说的是“预期结果”,它将列出

D:\jenkins\workspace\DeploymentInstaller

因为您正在调用的脚本位于该目录中,因此$PSScriptRoot将包含该值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27528214

复制
相关文章

相似问题

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