PowerShell脚本来清​​理FTP用户文件夹

我们有一个50个用户的FTP服务器,他们有一个主文件夹(如下)和5个子文件夹。 我正在寻找一个脚本,将每周清理子文件夹的内容。 但是不要触摸子文件夹中的存档文件夹,并为所有50个用户执行此操作。

C:\ ftp \ ftp-users jmartin – jmartin-a1 jmartin-a2 jmartin-a3 jmartin-a4 jmartin-a5存档

您请求PowerShell,所以在这里你去。 只需将C:\ Folder更改为所需的任何位置即可。 这个脚本将获得根目录中的文件夹列表,然后列出这些文件夹中的文件/文件夹列表并删除它们。

Get-ChildItem -path C:\Folder\ | ?{ $_.PSIsContainer } | Foreach-Object{ $_ | Get-ChildItem -Recurse | Remove-Item } 

这可以扩大。 说我有结构

 ROOT -Nick --Nick1 ---myfile.txt --Nick2 ---myfile.txt -Bob --Bob1 ---hisfile.txt --Bob2 ---hisfile.txt 

我可以使用以下方法删除Nick1,Nick2,Bob1,Bob2文件夹(包括文件夹)中的任何内容,但保留上述结构。 如果我想删除Bob1,Bob2,Nick1和Nick2文件夹,我将使用第一个命令(上图),只留下Nick和Bob文件夹。

 Get-ChildItem -path C:\Folder\ | ?{ $_.PSIsContainer } | Foreach-Object{ $_Get-ChildItem | ?{ $_.PSIsContainer } | Foreach-Object{ $_ | Get-ChildItem -Recurse | Remove-Item } } 

你可以把它压缩到一个class轮

 Get-ChildItem -path C:\Folder\ | ? { $_.PSIsContainer } | Get-ChildItem | ? { $_.PSIsContainer } | Get-ChildItem -Recurse | Remove-Item 

试试这个:

 For /RC:\ftp\ftp-users %G IN (.) do del "%G" /q 

记住:当你想在批处理中使用它,而不是其中的一个%。

 For /RC:\ftp\ftp-users %%G IN (.) do del "%%G" /q 

亲切的问候,

maesi

你可以随时尝试:

 del /s /q C:\FTP\*.* 

或删除没有存档属性的子目录中的所有文件:

 del /s /q /a:-a C:\FTP\*.* 

这里有一些信息:

  /A Selects files to delete based on attributes attributes R Read-only files S System files H Hidden files A Files ready for archiving I Not content indexed Files L Reparse Points - Prefix meaning not 

它将查找并删除C:\ FTP \

添加到Windows调度程序为:

 %windir%\cmd.exe 

与参数:

 /c del /s /q C:\FTP\*.*