我需要用批处理制定一个解压文件的条件。
方法如下: 如果dummy=1,批处理将解压一个xlsx文件到特定文件夹,否则,它将直接复制另一个xlsx文件到该文件夹。
我的代码如下:
set dummy=1
If %dummy% EQU 1 (
SET CHEMIN=C:\file_to_unzip
cd %CHEMIN%
for /f %%j in ('dir /b %CHEMIN%\*.zip') do (
C:\PROGRA~1\WinZip\Winzip32 -min -e -o -j %CHEMIN%\%%j %CHEMIN%
)
COPY "C:\file_to_unzip\*.xlsx" "C:\destination"
) else (
COPY "C:\file_to_copy\*.xlsx" "C:\destination"
)
问题在于没有 IF 条件时,unzip 命令可以正常工作。但是一旦包含 IF 条件,则 cmd 会说找不到 zip 文件。我不确定是什么原因导致了这个问题,以及如何解决它。
感激任何帮助。
cmd.exe
运行此脚本,删除开头的@echo off
。这将帮助您检查是否有任何中间命令失败,以及命令是否按照您的预期获取参数。同时,在cd命令之后加上pwd
和dir /b %CHEMIN%\*.zip
,纯粹是为了调试目的。 - anishsane