从Get-ChildItem重定向到Compress-Archive的输出不会存档所有文件/保留文件夹结构

时间:2019-03-01 17:06:23

标签: powershell get-childitem compress-archive

get()

当我执行GetChildItem "C:\foo\bar" -Recurse -File | where { $_.Name -notmatch '[a-zA-Z_0-9^0-9]*(.pl|.xap|.go|.zip|.py|.tar|.gz|.tgz)' } | Compress-Archive -DestinationPath "C:\archive\xyz.zip" 命令而没有输出重定向时,该命令恰好返回了我所需要的。但是,当我将输出重定向到GetChildItem时,此cmdlet不会保留Compress-Archive的目录结构(所有文件都存储在根目录中),并且在{{1}时不包括所有文件}命令是独立执行的。

将感谢您的任何投入。我通常会使用unix shell命令,但是我受到环境的限制。

更新(3/4/19):

\bar

删除-File开关/参数可解决文件夹结构问题,但不再忽略在GetChildItem开关中要忽略的文件。给出以下示例:

GetChildItem "C:\foo\bar" -Recurse | where { $_.Name -notmatch '[a-zA-Z_0-9^0-9]*(.pl|.xap|.go|.zip|.py|.tar|.gz|.tgz)' } | Compress-Archive -DestinationPath "C:\archive\xyz.zip"

此命令将产生以下输出:

-notmatch

在这种情况下,.zip,.zip和.pl文件包含在.zip

0 个答案:

没有答案