If 语句 - 如何检查路径是否包含文件
If statement - how to check if a path contains a file
我刚开始玩 powershell,所以请原谅我的新手错误。
我正在 搜索 一个文件,我将文件的路径存储在一个变量中,然后我想检查该路径中是否有特定文件,然后 删除 个。我在这方面找不到太多帮助,我认为 if 语句中有问题,但我无法弄清楚。
代码如下:
$startDirectory = ".\somepath\"
$FindFileXml = Get-Childitem $startDirectory
$StorePaths = Get-Childitem $FindFileXml -include "file.xml" -recurse
if($StorePaths -eq "somefile.cs" -and "diffrentfile.cs")
{
Remove-Item "somefile.cs"
Remove-Item "diffrentfile.cs"
}
else{
Write-host "file not found!"
}
更新:
$StorePaths = Get-Childitem $FindFilterXml-Filter "file.xml" -recurse
$StorePaths | Select-Object -ExpandProperty Directory
| Get-ChildItem |
Where-Object {($_.Name -eq 'GeneratedCode.cs') -or ($_.Name -eq 'TypedEnums.cs')}
| Remove-Item
这会在 $StorePaths 中存储 File.xml 的路径吗?如果是这样,我如何复制它,例如 Copy-Item $StorePath.name .\somepath?
您不需要此处的 if 语句。只需筛选要删除的文件的结果,然后将它们 管道 到 Remove-Item
cmdlet:
$StorePaths |
Where-Object {($_.Name -eq 'somefile.cs') -or ($_.Name -eq 'diffrentfile.cs')} |
Remove-Item
更新:
此示例仅删除存在 file.xml 的目录中的文件:
Get-Childitem $FindFileXml -Filter "file.xml" -recurse |
Select-Object -ExpandProperty Directory |
Get-ChildItem |
Where-Object {($_.Name -eq 'somefile.cs') -or ($_.Name -eq 'diffrentfile.cs')} |
Remove-Item
我刚开始玩 powershell,所以请原谅我的新手错误。 我正在 搜索 一个文件,我将文件的路径存储在一个变量中,然后我想检查该路径中是否有特定文件,然后 删除 个。我在这方面找不到太多帮助,我认为 if 语句中有问题,但我无法弄清楚。
代码如下:
$startDirectory = ".\somepath\"
$FindFileXml = Get-Childitem $startDirectory
$StorePaths = Get-Childitem $FindFileXml -include "file.xml" -recurse
if($StorePaths -eq "somefile.cs" -and "diffrentfile.cs")
{
Remove-Item "somefile.cs"
Remove-Item "diffrentfile.cs"
}
else{
Write-host "file not found!"
}
更新:
$StorePaths = Get-Childitem $FindFilterXml-Filter "file.xml" -recurse
$StorePaths | Select-Object -ExpandProperty Directory
| Get-ChildItem |
Where-Object {($_.Name -eq 'GeneratedCode.cs') -or ($_.Name -eq 'TypedEnums.cs')}
| Remove-Item
这会在 $StorePaths 中存储 File.xml 的路径吗?如果是这样,我如何复制它,例如 Copy-Item $StorePath.name .\somepath?
您不需要此处的 if 语句。只需筛选要删除的文件的结果,然后将它们 管道 到 Remove-Item
cmdlet:
$StorePaths |
Where-Object {($_.Name -eq 'somefile.cs') -or ($_.Name -eq 'diffrentfile.cs')} |
Remove-Item
更新: 此示例仅删除存在 file.xml 的目录中的文件:
Get-Childitem $FindFileXml -Filter "file.xml" -recurse |
Select-Object -ExpandProperty Directory |
Get-ChildItem |
Where-Object {($_.Name -eq 'somefile.cs') -or ($_.Name -eq 'diffrentfile.cs')} |
Remove-Item