2015-11-03 95 views
4

我已经尝试了几种不同的方法,但它仍然不起作用。删除所有.ica文件

remove-item .\*\appdata\local\temp\* -Include *.ica 

我希望它删除用户临时文件夹中的所有.ica文件。

+0

-include和-exclude只有真正与-recurse工作。 - 过滤器应该也是如此, – Matt

回答

2

试试这个:

$path = path to the folder 
Get-ChildItem -path -Filter "*.ica" | where { ! $_.PSIsContainer } | Remove-Item -Force -Confirm:$true 
+0

文件夹的路径是最大的问题。路径是%temp%,但powershell似乎并不理解该路径。 – user770022

+0

你的目标是什么?一台或多台服务器?你能从广告获取用户名吗? – kekimian

2

尝试指定根文件夹,得到匹配的文件列表,以及管道,列出来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

我想你需要-ForceGet-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

+0

两个人都不会工作,因为这是我将推送到企业的东西,我不知道用户名。另外我无法使用%temp%,因为powershell没有看到该路径。 – user770022

3

看起来你正在寻找用户的临时文件夹。如果您正在寻找,您可以使用$path = $env:temp将它用于@kekimian使用的$路径。

成品会是这个样子:

$path = $env:temp 
Get-ChildItem -path $path -Filter "*.ica" -Force -Recurse | Remove-Item -Force -Confirm:$False 
+0

get-ChildItem:缺少参数'Path'的参数。指定一个类型为'System.String []'的参数并重试。 这是我得到的 – user770022

+0

对不起,请参阅我的新编辑。 – Nixphoe

+0

它的作品,但现在我得到一个弹出的确认消息。 – user770022