使用批处理文件创建/放置/保存/存储在目录/文件夹中时打开新文件?

时间:2011-12-06 19:25:48

标签: batch-file

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?

2 个答案:

答案 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文件。