【问题标题】:zip permission denied in batch script批处理脚本中的 zip 权限被拒绝
【发布时间】:2020-09-09 11:26:15
【问题描述】:

我在 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_PATH\FILE.zip

zip I/O 错误:权限被拒绝

但是如果我直接输入

zip.exe -1 -m DIR_PATH\FILE.zip FILE.txt 

zip.exe -1 -m FILE.zip FILE.txt

在 cmd 中的DIR_PATH 中(这与我脚本中的行完全相同,因为我从脚本中将echo 复制到 cmd 中直接运行),它可以正常工作。

那么为什么只有在脚本中运行这个命令时才会出现错误呢?

【问题讨论】:

  • 你能看出“%DIR%\%~n1.zip”"%DIR%\%~n1.zip"之间的区别吗?您没有为您的任务提供足够的信息,我们不知道 %DIR% 的值或它是如何定义的,我们也不知道您传递给脚本的确切路径以及您是如何做到的。另外我建议您使用"%~1" 而不是%1
  • @Compo 实际上它们是相同的。当我从脚本中复制 cmd 并直接在 cmd 中运行时,它可以工作。
  • 不,他们不是! smart, (curly), 引号和dumb, (straight), 引号,是不一样的。你需要使用直的!
  • @Compo 抱歉信息不足,因为我用手机输入这个问题。我已经更新了我的问题
  • 你还没有提供我提到的信息,是吗?我目前也在使用手机,虽然我看不出这与您提供信息有什么关系

标签: windows cmd zip


【解决方案1】:

此问题可能是由 Windows server 2012R2 的兼容性引起的。 在我将zip.exe的兼容性设置更改为Windows 7后,所有问题都没有了。

【讨论】:

    猜你喜欢
    • 2017-12-01
    • 2014-06-18
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 2014-02-25
    • 2022-10-07
    • 1970-01-01
    相关资源
    最近更新 更多