Luke Vo Asked: 2020-06-30 05:12:09 +0800 CST2020-06-30 05:12:09 +0800 CST 2020-06-30 05:12:09 +0800 CST 切换 7zip CLI (7za) 以将提取文件的修改时间设置为现在? 772 现在我的服务器服务正在调用7za以提取存档文件,如下所示: 7za x "file" -o"output folder" 由于服务器合规性 Windows 清理服务会清除输出文件夹中超过一小时的所有文件,因此出现问题。对服务进行更改也不是选项。 输出文件夹中的所有文件每分钟自动删除一次,因此有时即使提取到此文件夹的用户也无法访问由于时间和每分钟运行一次的清理过程而提取的文件。 问题:是否有一个开关告诉 7zip 将提取文件的修改时间设置为 [现在] 当前时间,而不是存档中文件的时间? windows 7-zip 1 个回答 Voted Best Answer Vomit IT - Chunky Mess Style 2020-06-30T08:26:15+08:002020-06-30T08:26:15+08:00 作为解决此问题的一种解决方法,可以在将文件提取到临时位置后更改文件的日期修改属性,然后再移动它们。 您可以通过 7za 将文件提取到临时文件夹,将提取文件的日期修改值调整为当前日期时间戳,将它们移动到最终目的地,然后清理临时文件/文件夹。 只需使用$file变量值设置存档文件的完整路径位置。此外,使用变量值设置最终目标文件夹的完整路径位置,将其$dest指向具有服务的位置,该服务每隔一分钟清除其中的文件,超过特定年龄。 电源外壳 $file = "C:\Folder\Path\File.zip" $dest = "C:\Final\Destination\FolderPath" $now = Get-Date $nowf = "$($Env:Temp)\$((Get-Date).ToString("yyyyMMdd_hhssmmmtt"))" New-Item -ItemType Directory -Force -Path $nowf Start-Process "C:\Program Files\7-Zip\7za.exe" -ArgumentList "x $file -o$nowf" -NoNewWindow -Wait $i = Get-ChildItem -Path $nowf -File -Recurse $i | % { Process { If (Test-Path $_.FullName){ Set-ItemProperty -Path $_.FullName -Name LastWriteTime -Value $now Copy-Item -Path $_.FullName -Destination $dest -Force } }}; Remove-Item -Path "$nowf" -Force -Recurse; 支持资源 获取日期 新物品 启动过程 数组 获取子项 ForEach-对象 Foreach-Object 的标准别名%:' ' 符号,ForEach 如果 设置项属性 复制项目 除去项目
作为解决此问题的一种解决方法,可以在将文件提取到临时位置后更改文件的日期修改属性,然后再移动它们。
您可以通过 7za 将文件提取到临时文件夹,将提取文件的日期修改值调整为当前日期时间戳,将它们移动到最终目的地,然后清理临时文件/文件夹。
只需使用
$file
变量值设置存档文件的完整路径位置。此外,使用变量值设置最终目标文件夹的完整路径位置,将其$dest
指向具有服务的位置,该服务每隔一分钟清除其中的文件,超过特定年龄。电源外壳
支持资源