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"
}