【发布时间】: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 抱歉信息不足,因为我用手机输入这个问题。我已经更新了我的问题
-
你还没有提供我提到的信息,是吗?我目前也在使用手机,虽然我看不出这与您提供信息有什么关系。