我有一个文件,里面有一系列带方向的文件。
如下所示:
XXXXXX/sample.txt
XXXXXX/dog.txt
XXXXXX/cat.docx
ZZZZ/lamp.jpg如何压缩所有文件并保存带有子方向的文件。
现在,我可以压缩所有的文件,但没有说明。
如下所示:
sample.txt
dog.txt
cat.docx
lamp.jpg对不起,我的英语不好。
发布于 2020-02-03 19:28:48
foreach ($filename in Get-Content .\ListOfFilesToZip.txt)
{
Compress-Archive -Update $filename .\ZipFile.zip
}发布于 2018-07-24 18:34:16
如果问题是关于从路径获取文件名,请进行编辑
最有效的方法是使用正则表达式,但如果您不习惯使用它们,它们可能会相当复杂。
一种更简单的方法是简单地拆分每个字符串,并选择文件名所在的最后一部分:
$string = "c:\asd\qwe\zxc\dog.txt"
#Split the string on each \
$string.Split("\")
#This will output a list like this
c:
asd
qwe
zxc
dog.txt现在我们只想选择列表中的最后一个条目,因为文件名始终是路径中的最后一个条目。因此我们使用Select Object来实现这一点。
$string.Split("\") | Select-Object -Last 1 这将返回:
dog.txt您可以通过列表上的foreach来获取每一项的值。
发布于 2018-07-24 18:40:19
不知道有没有更好的方法,但你可以创建一个临时文件夹,将要存档的文件和所需的文件夹结构一起复制到那里,然后压缩整个文件。
看一下示例的here (不是我的代码,但似乎就是这样做的
https://stackoverflow.com/questions/51496303
复制相似问题