Shellscript在子目录中运行

时间:2015-08-22 14:21:11

标签: windows powershell

以下代码将在" c:\test"仅限目录,我希望此代码在" c:\test"的所有子目录中运行。 used -recursive但没有帮助。

cd c:\Test
$Afiles = ls -r *.bak 
$Bfiles = ls -r *.7z

$Alist = @()
$Blist = @()

foreach( $A in $Afiles) {
    $Alist += $A.BaseName 
}

foreach( $B in $Bfiles) {
    $Blist += $B.BaseName 
}

foreach($A in $Alist) {
    if($Blist -contains $a) 
    {
        rm ("$A.bak") 
    } 
}

1 个答案:

答案 0 :(得分:1)

PowerShell(2.0)解决了这个简写命令:

docpad

ls -r *.bak

由于Get-ChildItem -Recurse -Path *.bak 项目都是文件,因此无法通过

进行递归

你想要的是 *.bak ,而不是 -Filter *.bak

如果您想避免这种意外,请使用显式参数名称。您还可以直接从-Path *.bak的输出中获取BaseName属性:

Get-ChildItem