复制特定文件夹中的特定文件(.rar中的文件夹)

时间:2016-06-16 09:37:36

标签: powershell

我的文件夹结构如下所示:

SourceFolder
├─file1.txt
├─file1.doc
└─Subfolder1
  ├─file2.txt
  ├─file2.doc
  └─SubSubFolder
    ├─file3.txt
    └─doc3.txt

此脚本将文件夹中的所有* .txt文件(其(文件夹)名称包含eng)复制到目标文件夹。只有文件夹中的文件。

$dest = "C:\Users\username\Desktop\Final"
$source = "C:\Users\username\Desktop\Test1"

Get-ChildItem $source -Filter "*.txt" -Recurse |
    Where-Object { $_.DirectoryName -match "eng" } |
    ForEach-Object { Copy-Item $_.fullname $dest }

在我的情况下,文件夹是.rar格式,我希望脚本搜索.rar文件夹并将* .txt文件从文件夹eng复制到目标。 PowerShell可以实现吗?

1 个答案:

答案 0 :(得分:0)

Rar是一种专有的归档格式。您的.rar项目不是文件夹,而是该格式的压缩档案。 PowerShell无法透明地处理此类存档,我也不知道会添加此功能的第三方提供商。

基本上,不,你所要求的是不可能的。

您可以使用7-zip等工具从存档中提取文件,例如:

7z.exe e your.rar *.txt -r

为了从档案内的嵌套子文件夹中仅提取文件,请在该路径前面添加提取模式:

7z.exe e your.rar "nested\subfolder\*.txt" -r