Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何排除目录_Powershell - Fatal编程技术网

Powershell 如何排除目录

Powershell 如何排除目录,powershell,Powershell,我是powershell脚本的初学者,所以请保持冷静^^ 我想删除目录d:\test上的文件我只删除文件15天以上 但我不想删除目录d:\test中另一个目录上的文件 我的剧本 #----- define parameters -----# #----- get current date ----# $Now = Get-Date #----- define amount of days ----# $Days = "15" #----- define folder where files ar

我是powershell脚本的初学者,所以请保持冷静^^

我想删除目录d:\test上的文件我只删除文件15天以上 但我不想删除目录d:\test中另一个目录上的文件

我的剧本

#----- define parameters -----#
#----- get current date ----#
$Now = Get-Date
#----- define amount of days ----#
$Days = "15"
#----- define folder where files are located ----#
$TargetFolder = "d:\test"
#----- define extension ----#
$Extension = "*.bak"
#----- define LastWriteTime parameter based on $Days ---#
$LastWrite = $Now.AddDays(-$Days)
#----- get files based on lastwrite filter and specified folder ---#
$Nomatch = "d:\test\ZZ - Archives","d:\test\ZZ - Cloture Paye"

$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"} | 
Where-Object {$_.FullName -notmatch "$Nomatch"}

foreach ($File in $Files)
        {
        if ($File -ne $NULL)
            {
            write-host "Deleting File $File" -ForegroundColor "DarkRed"
            Remove-Item $File.FullName | out-null
            }
        else
            {
            Write-Host "No more files to delete!" -foregroundcolor "Green"
            }
        }

每个文件上都有一个属性

PSIsContainer
它指示对象是否为目录,您可以筛选文件集合:

$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse |
where { !$_.PSIsContainer } | ...

每个文件上都有一个属性

PSIsContainer
它指示对象是否为目录,您可以筛选文件集合:

$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse |
where { !$_.PSIsContainer } | ...

如果您使用的是Powershell 2.0,请仅获取文件:

Get-ChildItem $TargetFolder | Where-Object { ! $_.PSIsContainer }
如果您使用的是Powershell 3.0,请执行以下操作:

Get-ChildItem $TargetFolder -File

我不知道你是否想要递归。如果您只需要
d:\test
上的文件,而不需要子目录下的文件,请不要在Powershell 2.0上使用
-Recurse
仅获取文件:

Get-ChildItem $TargetFolder | Where-Object { ! $_.PSIsContainer }
如果您使用的是Powershell 3.0,请执行以下操作:

Get-ChildItem $TargetFolder -File

我不知道你是否想要递归。如果您只需要
d:\test中的文件,而不需要子目录下的文件,请不要使用
-Recurse

我可以使用psiscontainer排除目录吗?用哪行代码?好的,我找到了一个关于我的案例的解决方案^^我可以用psiscontainer排除目录?使用哪一行代码?好的,我找到了一个关于我的案例的解决方案^^抱歉,这不是我的问题,我只想排除我知道我可以使用PSIcontainer,但有可能使用这一行代码?@陌生人-抱歉,我无法理解您的评论。有什么代码行?关于排除我的特定目录的代码行,请参见下面的$Files=Get Childitem$TargetFolder-Include$Extension-Recurse | where{!$.PSIsContainer}|…抱歉,但这不是我的问题,我只想排除我知道我可以使用PSIcontainer,但可能有这行代码?@陌生人-抱歉,我不明白你的评论。有什么代码行?关于排除我的特定目录的代码行,请参见下面的$Files=Get Childitem$TargetFolder-Include$Extension-Recurse | where{!$\ PSIsContainer}|。。。