Powershell 删除目录及其内容并记录到自定义函数

Powershell 删除目录及其内容并记录到自定义函数,powershell,Powershell,假设以下目录树: NATIVES \VOL001 file1.txt file2.txt \VOL002 file3.txt \OTHERDIR file4.txt 我正在尝试删除所有文件夹VOL*文件夹及其子文件夹(目前仅限于文件)并记录结果。删除文件夹和文件很容易: # Remove textfiles Remove-Item -path C:\Sandbox\NATIVES\VOL* -Recurse

假设以下目录树:

NATIVES
    \VOL001
        file1.txt
        file2.txt
    \VOL002
        file3.txt
    \OTHERDIR
        file4.txt
我正在尝试删除所有文件夹
VOL*
文件夹及其子文件夹(目前仅限于文件)并记录结果。删除文件夹和文件很容易:

# Remove textfiles
Remove-Item -path C:\Sandbox\NATIVES\VOL* -Recurse
但我无法按原样记录。我正在使用自定义日志函数:

Function Log-Write 
{
    Param([string]$logstring)
    Add-Content "log.txt" -value $logstring 
}
如何使用它来填充已删除的每个文件和文件夹?例如:

Delete file C:\Sandbox\NATIVES\VOL001\file1.txt
Delete file C:\Sandbox\NATIVES\VOL001\file2.txt
Delete dir C:\Sandbox\NATIVES\VOL001\
Delete file C:\Sandbox\NATIVES\VOL002\file3.txt
...
我可以编写一个更大的循环,但我正在努力使代码尽可能简洁(这更像是一件学习的事情)

有人能告诉我正确的方向吗?

使用
foreach
(又称
%
)而不是递归
删除项
。将
Remove Item
-Verbose
输出到一个文件,但这需要非常隐晦的语法,除非您使用的是Powerhell 3.0或更高版本

前面的路看起来是这样的

$files = @(gci -recurse c:\path\to\files)
$files | %  {
    rm $_.FullName
    add-content c:\myLogFile.txt "Delete file $_.FullName"
}