我已经尝试了几种不同的方法,但它仍然不起作用。删除所有.ica文件
remove-item .\*\appdata\local\temp\* -Include *.ica
我希望它删除用户临时文件夹中的所有.ica文件。
我已经尝试了几种不同的方法,但它仍然不起作用。删除所有.ica文件
remove-item .\*\appdata\local\temp\* -Include *.ica
我希望它删除用户临时文件夹中的所有.ica文件。
试试这个:
$path = path to the folder
Get-ChildItem -path -Filter "*.ica" | where { ! $_.PSIsContainer } | Remove-Item -Force -Confirm:$true
文件夹的路径是最大的问题。路径是%temp%,但powershell似乎并不理解该路径。 – user770022
你的目标是什么?一台或多台服务器?你能从广告获取用户名吗? – kekimian
尝试指定根文件夹,得到匹配的文件列表,以及管道,列出来remove-item
:
Get-ChildItem "c:\users\$username\appdata\local\temp\*.ica" -Force -Recurse | Remove-Item -Confirm:True
- 或 -
Get-ChildItem -Path "C:\Users\$username\appdata\local\temp" -Include '.ica' -Force -Recurse | Remove-Item -Confirm:True
我想你需要-Force
Get-ChildItem
,因为那里的一些路径包括隐藏的文件夹。如果没有它,它就会失效。
编辑:
foreach ($user in (Get-ChildItem -Directory C:\Users).name) { <#do stuff#> }
此外,$ENV:Temp
在PowerShell中相当于%TEMP%
。 $ENV:
中包含许多其他环境变量。
或者,如果您需要为所有的用户这样做:
Get-ChildItem -Path "C:\Users\" -Include '.ica' -Force -Recurse | Remove-Item -Confirm:True
两个人都不会工作,因为这是我将推送到企业的东西,我不知道用户名。另外我无法使用%temp%,因为powershell没有看到该路径。 – user770022
看起来你正在寻找用户的临时文件夹。如果您正在寻找,您可以使用$path = $env:temp
将它用于@kekimian使用的$路径。
成品会是这个样子:
$path = $env:temp
Get-ChildItem -path $path -Filter "*.ica" -Force -Recurse | Remove-Item -Force -Confirm:$False
get-ChildItem:缺少参数'Path'的参数。指定一个类型为'System.String []'的参数并重试。 这是我得到的 – user770022
对不起,请参阅我的新编辑。 – Nixphoe
它的作品,但现在我得到一个弹出的确认消息。 – user770022
-include和-exclude只有真正与-recurse工作。 - 过滤器应该也是如此, – Matt