相关疑难解决方法(0)

如何使用Windows的内置功能从脚本中压缩或解压缩?

在Windows中,您可以使用.zip一些文件

右键单击 - >发送到 - >压缩(zipped)文件夹

然后.zip双击.zip文件并解压缩文件.

有没有办法从脚本(.bat文件)应用这些功能,而无需安装任何第三方

windows zip batch-file

281
推荐指数
11
解决办法
70万
查看次数

如何在不使用任何外部工具的情况下使用批处理文件压缩(/ zip)和解压缩(/解压缩)文件和文件夹?

我知道这里有很多类似的问题,但我对答案(甚至是问题)都不满意.

主要目标是兼容性 - 它应该适用于最广泛的Windows机器(包括XP,Vista,Win2003 - 它们共同占据了大约20%的Windows共享),并且生成的文件应该可以在Unix/Mac机器上使用(所以标准存档/压缩格式是优选的).

选项有哪些:

  1. 创建一个实现一些zip算法的批处理.显然这是可能的 - 但只能使用单个文件并使用CERTUTIL进行二进制处理(某些机器默认情况下没有CERTUTIL,并且无法在WinXP Home Edition上安装)
  2. 通过WSH 使用shell.application.根据我的最佳选择.它允许压缩整个目录,并且可以在每台Windows机器上使用
  3. Makecab - 尽管压缩不是那么便携,但它可以在每台Windows机器上使用.一些外部程序如7zip能够提取.CAB内容,但是当需要在Unix/Mac上使用文件时它会不那么方便.并且压缩时单个文件非常简单,保留目录结构需要更多的努力.
  4. 使用.NET Framework - 不是那么好的选项.Form .NET 2.0有 GZipStream但它只允许压缩单个文件..NET 4.5具有Zip功能,但在Vista和XP上不支持.甚至更多 - 默认情况下不会在XP和Win2003上安装.NET,但由于很可能将.NET 2.0升级到4.0,因此它是一个相当大的选择.
  5. Powershell - 因为它依赖于.NET,它具有相同的功能.默认情况下,它不会安装在XP,2003和Vista上,所以我会跳过它.

.net zip batch-file jscript

42
推荐指数
3
解决办法
7万
查看次数

如何使用System.IO.Compression读取/写入ZIP文件?

我知道有用于处理ZIP文件的库.而且,您也可以使用Windows内置的功能来处理ZIP文件.

但是,我想知道是否有人研究过如何使用.NET中的System.IO.Compression命名空间内置的工具来读取/写入ZIP文件?或者,是否仅使用此命名空间是不可能的?

更新:我似乎有人评论System.IO.Packaging命名空间也可能对此有用.有谁知道到底该怎么做?

.net compression zip

19
推荐指数
4
解决办法
9万
查看次数

创建压缩(或压缩)文件夹

有没有办法在Windows中以编程方式创建压缩文件夹?我无法使用FileSystemObject看到这样做的方法(尽管有'Compressed'属性).

我已经看过zip dll了,但是如果可能的话,我宁愿避免重新发布一个dll.Windows XP本身就支持压缩文件夹.

vb6 vba

6
推荐指数
1
解决办法
2万
查看次数

批处理脚本在不使用外部软件的情况下压缩文件夹

我有以下结构的文件夹

folder子文件夹(空)子文件夹file1.bat file2.bat file3.bat

如何在不使用winrar或7zip等外部软件的情况下编写批处理文件来压缩上述文件夹的内容?

我尝试了下面的代码.但它会将内容复制到指定的临时文件夹而没有空文件夹,并且在尝试压缩文件夹时,它只会压缩file1和file2并忽略其余内容.

我希望能够在不影响结构的情况下压缩文件夹.

我找不到问题的原因.任何帮助表示赞赏.

set FILETOZIP=D:\OutputZipFiles\TestWorkDemo


set TEMPDIR=D:\OutputZipFiles\TempDir
rmdir %TEMPDIR%
mkdir %TEMPDIR%
xcopy /s %FILETOZIP% %TEMPDIR%

echo Set objArgs = WScript.Arguments > _zipIt.vbs
echo InputFolder = objArgs(0) >> _zipIt.vbs
echo ZipFile = objArgs(1) >> _zipIt.vbs
echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> _zipIt.vbs
echo Set objShell = CreateObject("Shell.Application") >> _zipIt.vbs
echo Set source = objShell.NameSpace(InputFolder).Items >> _zipIt.vbs
echo objShell.NameSpace(ZipFile).CopyHere(source) >> _zipIt.vbs
echo wScript.Sleep 2000 >> _zipIt.vbs

CScript  _zipIt.vbs  %TEMPDIR%  D:\OutputZipFiles\someArchive.zip

pause
Run Code Online (Sandbox Code Playgroud)

zip batch-file

2
推荐指数
1
解决办法
2239
查看次数

标签 统计

zip ×4

batch-file ×3

.net ×2

compression ×1

jscript ×1

vb6 ×1

vba ×1

windows ×1