是否可以定义文件名数组(不同文件夹中的所有文件),然后在循环中删除所有文件名,或者执行其他操作?
实际上我需要使用mklink创建一些符号链接到一个文件,将这些链接放在不同的文件夹中,如果有的话,替换旧的链接.
删除文件名数组很简单:
Remove-Item foo.txt,c:\temp\bar.txt,baz\baz.txt
Run Code Online (Sandbox Code Playgroud)
或者通过变量:
$files = 'foo.txt','c:\temp\bar.txt','baz\baz.txt'
Remove-Item $files
Run Code Online (Sandbox Code Playgroud)
然后基于不同文件夹中的所有文件:
$folders = 'C:\temp','C:\users\joe\foo'
Get-ChildItem $folders -r | Where {!$_.PSIsContainer} | Remove-Item -WhatIf
Run Code Online (Sandbox Code Playgroud)
删除-WhatIf要做的实际删除.
如果要删除具有特定名称的文件,可以使用-Filter参数on Get-ChildItem.这将是表现最佳的方法:
$folders = 'C:\temp','C:\users\joe\foo'
Get-ChildItem $folders -r -filter foo.bak | Remove-Item -WhatIf
Run Code Online (Sandbox Code Playgroud)
如果名称需要更复杂的匹配,那么您可以在Where scriptblock中使用正则表达式,例如:
$folders = 'C:\temp','C:\users\joe\foo'
Get-ChildItem $folders -r | Where {$_.Name -match 'f\d+.bak$'} |
Remove-Item -WhatIf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7457 次 |
| 最近记录: |