【发布时间】:2018-03-30 18:30:42
【问题描述】:
UPD1 - 我修改了我的问题以使其不那么含糊
我是 Powershell 的新手,需要有人建议。 我有一个需要压缩的目录,例如:
在 C:\inetpub\wwwroot\STAGETEST\ App_Config 资源 垃圾箱
C:\inetpub\wwwroot\STAGETEST\ 中还有另外一堆目录,我只需要压缩 App_Config、Resources、bin - 包含所有子目录和文件,保持结构。 为此,我有一个脚本:
$SOURCEDIR = "C:\inetpub\wwwroot\STAGETEST\"
$SOURCEFOLDERS = "App_Config", "Resources", "bin"
Get-ChildItem -Path $SOURCEDIR -Include "$SOURCEFOLDERS" -Directory
$SOURCE = Get-ChildItem -Path $SOURCEDIR -Directory
Add-Type -assembly "system.io.compression.filesystem"
Foreach ($s in $SOURCE)
{
$DESTINATIONDIR = Join-path -path $SOURCEDIR -ChildPath "$($s.name).zip"
#检查存档是否已经存在并删除
If(Test-path $DESTINATIONDIR) {Remove-item $DESTINATIONDIR}
[io.compression.zipfile]::CreateFromDirectory($s.fullname, $DESTINATIONDIR)
不幸的是,我无法理解,如何实施正确的 Get-ChildItem -include 来获取所有必要的多个目录? 或许,还有其他方法吗?
【问题讨论】:
-
当双引号 var 不会被扩展时,要么使用单引号,要么省略它们。但是AFAIK包含选项仅指扩展名而不是文件夹。您想在存档名称中包含时间戳还是设置文件日期/时间?
-
@LotPings - 您想在存档名称中包含时间戳还是设置文件日期/时间?是的,这是正确的 - 这是我脚本中的第二个问题 :)
-
@LotPings 我希望在存档名称中包含时间戳
-
$dtstamp = (Get-Date).ToString("yyyyMMdd_HHmmss")在字符串中指定您想要的格式。 -
@LotPings 谢谢!
标签: powershell filter timestamp