Winrar CommandLine & Powershell:排除完整目录路径结构

Posted

技术标签:

【中文标题】Winrar CommandLine & Powershell:排除完整目录路径结构【英文标题】:Winrar CommandLine & Powershell : Exclude Full Directory Path Structure 【发布时间】:2014-06-16 19:31:23 【问题描述】:

假设我有一个类似的目录结构

C:\Users\Desktop\abc\d

我想将 abc 文件夹 rar 归档,这样 rar 的结构是:

abc\d

当我尝试使用 powershell 存档时,winrar 会复制存档内的完整路径,例如:

\Users\Desktop\abc\d

我不想在存档中创建完整路径 这是脚本: https://gist.github.com/saurabhwahile/50f1091fb29c2bb327b7

我做错了什么?

【问题讨论】:

您可以跳转到存档所在的根目录,即cd C:\Users\Desktop,然后针对abc\d 运行您的winrar 命令。还要在此处粘贴您的代码 - 或至少粘贴相关位 - 而不是链接到外部源。 【参考方案1】:

使用命令行:

Rar.exe a -r -ep1 Test.rar "C:\Users\Desktop\abc"

Rar.exeWinRAR 的控制台版本,存储在与WinRAR.exe 相同的目录中。如果您想在图形窗口中查看压缩过程,也可以将此命令行与 WinRAR.exe 一起使用。

a 是命令,表示将文件添加到存档

-r 是一个开关,用于递归地将所有文件和子目录(包括空子目录)添加到存档中。

-ep1 是另一个导致排除基目录的开关。

对于此命令行,基本目录是“C:\Users\Desktop\”,因此创建的存档Test.rar 仅包含abc 以及目录abc 中的所有文件和子目录,这正是您想要的。

另一个提示:使用命令行

Rar.exe a -r -ep1 Test.rar "C:\Users\Desktop\abc\"

导致将目录abc 的所有文件和子目录添加到存档中,但没有目录名称abc 也存储在存档中。末尾的反斜杠造成了这种差异。

换句话说:在使用开关-ep1 时,文件/目录规范中直到最后一个反斜杠的所有内容都不会添加到存档中。

有关可用开关的更多信息,请参阅WinRAR的程序文件目录中的文本文件Rar.txt

【讨论】:

以上是关于Winrar CommandLine & Powershell:排除完整目录路径结构的主要内容,如果未能解决你的问题,请参考以下文章

ROS从入门到精通系列(二十)rosbag & record 工具

docker commandline

如何使用 System.CommandLine 绑定 NodaTime.Duration?

使用带有自定义 Main() 签名的 System.CommandLine

批处理使用WinRAR压缩某类型的文件,一个文件压缩成一个压缩包,压缩后名称与原文件同名,压缩后删除原文件

看看《System.CommandLine》