首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除用户文件

删除用户文件
EN

Stack Overflow用户
提问于 2020-02-27 17:55:39
回答 1查看 39关注 0票数 0

我已经创建了一个脚本来删除指定路径中用户的文件。

我想统一变量,这样就不会用太长的时间。

代码语言:javascript
复制
$folder = "C:\Users\$env:USERNAME\*"
$folder2 = "C:\Users\$env:USERNAME\Desktop\*"
$folder3 = "C:\Users\$env:USERNAME\Documents\*"
$folder4 = "C:\Users\$env:USERNAME\Contacts\*"
$folder5 = "C:\Users\$env:USERNAME\Downloads\*"
$folder6 = "C:\Users\$env:USERNAME\Favorites\*"
$folder7 = "C:\Users\$env:USERNAME\links\*"
$folder8 = "C:\Users\$env:USERNAME\Music\*"
$folder9 = "C:\Users\$env:USERNAME\OneDrive\*"
$folder10 = "C:\Users\$env:USERNAME\Pictures\*"
$folder11 = "C:\Users\$env:USERNAME\Searches\*"
$folder12 = "C:\Users\$env:USERNAME\Videos\*"


If (Test-Path $folder) {
    Remove-Item $folder -Exclude AppData,Contacts,Desktop,Documents,Downloads,Favorites,Links,Music,OneDrive,Pictures,Searches,Videos -Force -ErrorAction SilentlyContinue
    Remove-Item $folder2 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder3 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder4 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder5 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder6 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder7 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder8 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder9 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder10 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder11 -Recurse -Force -ErrorAction SilentlyContinue
    Remove-Item $folder12 -Recurse -Force -ErrorAction SilentlyContinue
}

我尝试了以下方法,但不起作用:

代码语言:javascript
复制
$folder = "C:\Users\$env:USERNAME\*"
$folder2 = "C:\Users\$env:USERNAME\Desktop\*"
$folder3 = "C:\Users\$env:USERNAME\Documents\*"
$folder4 = "C:\Users\$env:USERNAME\Contacts\*"
$folder5 = "C:\Users\$env:USERNAME\Downloads\*"
$folder6 = "C:\Users\$env:USERNAME\Favorites\*"
$folder7 = "C:\Users\$env:USERNAME\links\*"
$folder8 = "C:\Users\$env:USERNAME\Music\*"
$folder9 = "C:\Users\$env:USERNAME\OneDrive\*"
$folder10 = "C:\Users\$env:USERNAME\Pictures\*"
$folder11 = "C:\Users\$env:USERNAME\Searches\*"
$folder12 = "C:\Users\$env:USERNAME\Videos\*"


If (Test-Path $folder) {
    Remove-Item $folder -Exclude AppData,Contacts,Desktop,Documents,Downloads,Favorites,Links,Music,OneDrive,Pictures,Searches,Videos -Force -ErrorAction SilentlyContinue
    Remove-Item $folder2 + $folder3 + $folder4 + $folder5 + $folder6 + $folder7 + $folder8 + $folder9 + $folder10 + $folder11 + $folder12 -Recurse -Force -ErrorAction SilentlyContinue
}

我还希望获得所做工作的日志,例如,如果在路径中找到了文件或文件夹。

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-02-27 18:13:05

如果要一次删除多个项,则Remove-Item-Path参数接受字符串数组作为输入。

现在,使用语法$folder2 + $folder3创建了一个连接字符串,如:"C:\Users\foo\Desktop\*C:\Users\foo\Desktop\*""。这是Remove-Item所不能处理的。

您可以构建如下路径的字符串数组:

代码语言:javascript
复制
$folder = "C:\Users\$env:USERNAME"
$foldersToRemove = @(
    "C:\Users\$env:USERNAME\Desktop",
    "C:\Users\$env:USERNAME\Documents",
    "C:\Users\$env:USERNAME\Contacts",
    "C:\Users\$env:USERNAME\Downloads",
    "C:\Users\$env:USERNAME\Favorites",
    "C:\Users\$env:USERNAME\links",
    "C:\Users\$env:USERNAME\Music",
    "C:\Users\$env:USERNAME\OneDrive",
    "C:\Users\$env:USERNAME\Pictures",
    "C:\Users\$env:USERNAME\Searches",
    "C:\Users\$env:USERNAME\Videos")

    If (Test-Path $folder) {
        Remove-Item $folder -Exclude AppData, Contacts, Desktop, Documents, Downloads, Favorites, Links, Music, OneDrive, Pictures, Searches, Videos -Force -ErrorAction SilentlyContinue
        Remove-Item $foldersToRemove -Recurse -Force -ErrorAction SilentlyContinue
    }

关于你的第二个要求:

-Verbose参数会让Remove-Item告诉你哪些文件夹被删除了。如果您需要在文件中记录日志,您可以像这样重定向详细流:

代码语言:javascript
复制
Remove-Item $foldersToRemove -Recurse -Force -ErrorAction SilentlyContinue -Verbose 4> .\deletedFolders.log
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60430480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档