【发布时间】:2015-09-26 04:18:08
【问题描述】:
有没有办法只递归到最后一个目录级别?
我正在尝试执行以下脚本:
$sourcepath = "\\xx.xxx.xx.xxx\target";
$inputdate = '2014-06-02';
$sourcepath
#Get-ChildItem -path $sourcepath
Get-Date;
Get-ChildItem -path $sourcepath -recurse | where-object {$_.fullname.contains("XX") -and $_.fullname.contains($inputdate)} |
foreach-object {
$_.fullname;
}
Get-Date;
上面的源码目录\xx.xxx.xx.xx\ftpcopy,里面有很多文件夹,比如XX,X1,X2等,每个子文件夹里面都有'2014-06-01'这样的文件夹, '2014-06-02' 等
在每个子文件夹中都有文件。这些子文件夹总共有 68 个,并且所有这些子文件夹都包含文件。我的目标是使用脚本仅列出文件夹中文件的名称,\xx.xxx.xx.xxx\ftpcopy\XX\2014-06-02。
稍后我想概括一下,当我传递参数'sourcepath'时,它会在任何子文件夹'XX','X1','X2'等下列出文件夹'2014-06-02'下的文件名和“输入日期”。
当我执行这个脚本时,它需要 45 分钟才能执行,这非常长。我认为这是由于每个子文件夹中有很多文件;它还必须递归所有这些以找到匹配的模式。
如果有办法只递归到最后一个文件夹级别,例如“2014-06-02”,那么它可以使脚本运行得更快。 xx.xxx.xx.xxx 是我正在尝试访问的远程服务器。我该怎么做?
【问题讨论】:
标签: powershell