Stack Overflow上的人们好!
我在互联网上搜索了很多,但我没有得到任何相关的信息。
我正在编写一个脚本,一旦置于目录中,就会直接打开文件。所以,假设我有目录:
F:\Files
现在我将文件下载到该文件夹。将创建以下内容:
F:\Files\download.zip REM This is the actual file, but 0 KB
F:\Files\download.part REM This is the content of the *.zip, until it is fully downloaded.
当大小等于大于1个字节时,我可以用哪个脚本打开download.zip?
答案 0 :(得分:1)
假设%1
是作为参数传递给脚本的文件名,您可以这样做:
IF %~z1 GTR 0 (
commands to process the file
)
%~z1
计算%1
中指定的文件大小。 GTR
表示大于,因此条件检查大小是否大于0,如果为真,则执行 commands to process the file
。
答案 1 :(得分:0)
这个bach文件应该做你想要的(不确定它是否适用于所有版本的Windows)。
它正在使用Andriy M的脚本,但添加了您请求的功能。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET dirname=F:\Files
:Begin
CLS
ECHO %TIME%
FOR /R "%dirname%\" %%a IN (*.zip) DO CALL :process1 %%a
ping.exe localhost -n 11 >nul
GOTO Begin
:process1
IF %~z1 GTR 0 "%1"
GOTO :EOF
ping.exe localhost -n 11 >nul
只是一个延迟,因此您可以让批处理文件继续运行,它将按照-n 11
定义的每10秒循环一次,这将导致11个本地主机间隔为在几微秒后,第一次成功已经过了1秒。
我添加了命令行ECHO %TIME%
,以便可以看到它仍在工作,因为此时间值会更新每次循环迭代。
此批处理解决方案存在缺陷。如果ZIP文件在下一次循环运行时仍在目录中,则会再次打开ZIP文件。