递归删除desktop.ini文件

时间:2016-03-08 03:55:56

标签: powershell cmd delete-file

我试图删除给定目录中的所有desktop.ini个文件;即Documents\Gio。我在cmd(管理员模式)中尝试了del /S desktop.inidel /S *.ini,在PowerShell(也是管理员)中尝试了get-childitem .\ -include desktop.ini -recurse | foreach ($_) {remove-item $_.fullname}get-childitem .\ -include *.ini -recurse | foreach ($_) {remove-item $_.fullname}。两者都没有奏效。我该怎么办?

desktop.ini个文件包含以下内容:

[.ShellClassInfo]
InfoTip=This folder is shared online.
IconFile=C:\Program Files\Google\Drive\googledrivesync.exe
IconIndex=12

我从Google云端硬盘文件夹中移动目录,但所有文件夹上仍然有共享图标。我试图更改目录及其所有子目录和文件'所有权到另一个帐户。我尝试使用Google云端硬盘,但只有根目录更改了所有权;我无法删除其中的任何文件或目录。

5 个答案:

答案 0 :(得分:3)

del /s /a desktop.ini

请参阅del /?寻求帮助。

答案 1 :(得分:1)

这是我用于Windows 2012服务器

的内容

创建Desktop.ini文件

我的desktop.ini文件是通过运行此脚本创建的,该脚本设置了默认文件夹选项

$key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
Set-ItemProperty $key Hidden 1
Set-ItemProperty $key HideFileExt 0
Set-ItemProperty $key ShowSuperHidden 1
Stop-Process -processname explorer

删除Desktop.ini文件

# Remove from your user desktop
gci "$env:USERPROFILE\Desktop" -filter desktop.ini -force | foreach ($_) {remove-item $_.fullname -force}

# Remove from default desktop
gci "C:\Users\Public\Desktop" -filter desktop.ini -force | foreach ($_) {remove-item $_.fullname -force}

答案 2 :(得分:1)

这将获取您主目录中的每个文件夹,然后在该文件夹中搜索desktop.ini并将其删除。它应该比使用-recurse更快,因为它不会搜索子文件夹。它应该整齐地完成,没有错误

foreach ($file in Get-ChildItem -path \\server\homedrivedirectory) {
Get-ChildItem $file.FullName -Filter desktop.ini -force | remove-item -force -WhatIf
}

这将获取您主目录中的每个文件夹,然后为每个文件夹创建一个路径到\ server \ homedrivedirectory \ user \ desktop.ini,然后删除该文件。它应该运行得更快一些,因为它不必搜索每个用户文件夹,但是它将为每个没有Desktop.ini的用户文件夹显示错误。

foreach ($_ in Get-ChildItem -path \\server\homedrivedirectory) {
$path = $_.fullname
Remove-Item "$path\desktop.ini" -Force -WhatIf
}

我留下了-whatif,因此您可以查看它在您的环境中不执行该操作会做什么。如果您希望它实际删除文件,请删除-whatif

答案 3 :(得分:0)

使用powershell,您可以使用Get-ChildItem(别名gci)cmdlet检索所有desktop.ini文件并将其传递给Remove-Item(别名rm):

gci 'C:\YOURPATHTODOCUMENTS\GO' -Filter desktop.ini  -Recurse | rm

答案 4 :(得分:0)

我有类似的问题,这是我的解决方案:

Get-Location | Get-ChildItem -Force -Recurse -File -Filter "desktop.ini" | Remove-Item

第一部分获取当前的活动目录。

Get-Location

您可以使用以下路径替换它:

"C:\Users\Chris" | Get-ChildItem -Force -Recurse -File -Filter "desktop.ini" | Remove-Item

第二部分获取路径中的子项。

Get-ChildItem -Force -Recurse -File -Filter "desktop.ini"
  • -Force - >强迫所有儿童用品甚至是隐藏的物品,大多数" desktop.ini"隐藏
  • -Recurse - >是递归的
  • - 文件 - >为了获得其他文件,它可以找到一个名为" desktop.ini"
  • 的文件夹
  • -Filter" desktop.ini" - >仅获取名为" desktop.ini"
  • 的项目

最后一部分删除了该项目。

Remove-Item

为第一次运行添加-WhatIf可能更安全。

Remove-Item -WhatIf