2016-06-16 113 views
0

我的文件夹结构如下所示:特定文件(.rar程序文件夹)

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

这个脚本复制所有*从文件夹,它(文件夹)名.txt文件包含了工程,以目标文件夹。只有文件夹内的文件。

$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文件夹,从工程复制到目标。 PowerShell有可能吗?

回答

0

Rar是专有档案格式。您的.rar项目不是文件夹,而是该格式的压缩档案。 PowerShell不能透明地处理这样的档案,我不知道会添加这个功能的第三方提供商。

基本上,不,你问的是不可能的。

你可以做的是与像7-zip工具存档提取文件,如:

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

对于从存档中的嵌套子文件夹解压文件只有前面加上该路径的提取模式:

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

感谢Ansgar Wiechers的回复。提取rar,在他们的网站状态示例很麻烦7z x archive.zip -oc:\ soft * .cpp -r解释将所有* .cpp文件从archive archive.zip提取到c:\ soft文件夹。很好,但我的只是文件夹eng文件夹排除所有其他文件,只提取他们的txt文件。任何替代品。 – danny