Windows 批处理脚本中的zip权限被拒绝
我正在Windows Server 2012R2上使用zip.exe(2.31)。 我有一个很大的txt文件,我想在通过scp传输之前先压缩它。我就这样跑Windows 批处理脚本中的zip权限被拒绝,windows,cmd,zip,Windows,Cmd,Zip,我正在Windows Server 2012R2上使用zip.exe(2.31)。 我有一个很大的txt文件,我想在通过scp传输之前先压缩它。我就这样跑 zip.exe -1 -m "%DIR%\%~n1.zip" %1 其中%1是我的txt文件的完整路径。 但是这个剧本已经过时了 zip警告:忽略多个磁盘信息 zip.exe:找到20464字节的前导码 zip警告:名称不匹配:DIR\u PATH\FILE.zip zip I/O错误:权限被拒绝 但是如果我直接打字
zip.exe -1 -m "%DIR%\%~n1.zip" %1
其中%1是我的txt文件的完整路径。
但是这个剧本已经过时了
zip警告:忽略多个磁盘信息
zip.exe:找到20464字节的前导码
zip警告:名称不匹配:DIR\u PATH\FILE.zip
zip I/O错误:权限被拒绝
但是如果我直接打字
zip.exe -1 -m DIR_PATH\FILE.zip FILE.txt
或
在cmd中的DIR\u路径
(这与我脚本中的行完全相同,因为我echo
将它从脚本复制到cmd以直接运行),它可以正常工作
那么,为什么只有在脚本中运行此命令时才会出现错误?此问题可能是由Windows server 2012R2的兼容性引起的。
在我将
zip.exe的兼容性设置更改为Windows7
后,所有问题都解决了。你能看到%DIR%\%~n1.zip“
和%DIR%\%~n1.zip”之间的区别吗?您没有为您的任务提供足够的信息,我们不知道%DIR%
的值或它是如何定义的,也不知道您传递给脚本的确切路径以及您是如何做到的。另外,我建议您使用“%~1”
而不是%1
@Compo实际上它们是一样的。当我从脚本中复制cmd并直接在cmd中运行时,它可以工作。不,它们不是!聪明的,(卷曲的)引号和愚蠢的,(笔直的)引号是不一样的。你需要用直的@对不起,由于我正在用手机打这个问题,所以没有足够的信息。我已经更新了我的问题,但是你没有提供我提到的信息,是吗?我现在也在用电话,虽然我不知道这与你提供信息有什么关系。
zip.exe -1 -m FILE.zip FILE.txt