我已经拥有一个Powershell脚本,它运行在指定的文件夹中,并从中删除所有内容。现在我们看到,我们需要保留一些子文件夹和文件。
假设有一个名为“Stuff”的文件夹,其中有2个子文件夹,名为“Important”和“NotImportant”。两个子文件夹都包含数据。文件夹“Stuff”中也包含一些文件。
因为我的脚本用于处理许多不同的文件夹,所以我们需要使用“Config-File”,其中Person定义应该保留哪些文件夹和文件。例如,文件中包含路径“directory \ Stuff \ Important”,然后脚本忽略它。此外,如果其中包含“directory \ Stuff \ examplefile.doc”,则在删除过程中将忽略该文件。
有人可以帮我这个吗?
更新
目前我的脚本看起来像这样。它是一个简单的WebserverFarm更新脚本</ p>
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
$Pfad = [Microsoft.VisualBasic.Interaction]::InputBox("Bitte den Websitenamen angeben", "Website angeben")
if ($Pfad -eq "")
{
[System.Windows.Forms.MessageBox]::Show("Vorgang abgebrochen" , "Error")
}
else
{
if(Test-Path -Path Directory\Content\$pfad\)
{
Add-Type -Assembly "System.IO.Compression.FileSystem";[System.IO.Compression.ZipFile]::CreateFromDirectory("Directory\Content\$pfad", "Directory\Content_Backup\$pfad-$(Get-Date -Format dd-MM-yyyy_HH-mm-ss).zip");
Copy-Item -Path "Directory\WebSite_Update\app_offline.htm" -Destination "Directory\Content\$pfad\"
start-sleep -s 10
Remove-Item -Path Directory\Content\$pfad\* -Recurse -Exclude app_offline*
Copy-Item -Path Directory\WebSite_Update\$pfad\* -Destination Directory\Content\$pfad\ -Recurse
Remove-Item Directory\Content\$pfad\app_offline.htm
[System.Windows.Forms.MessageBox]::Show("Website Update beendet. Bitte die Webseite überprüfen" , "Status")
}
else
{
[System.Windows.Forms.MessageBox]::Show("Bitte eine gültige Eingabe machen!" , "Error")
}
}
否则 { [System.Windows.Forms.MessageBox] :: Show(“Bitte das Script als Administratorausführen!”,“Error”) }