使用通配符查找零字节文件,并检查主BATCH文件是否已打开

时间:2012-07-04 06:54:24

标签: windows batch-file

我需要在特定文件夹中找到一个零字节的文件,扩展名为* .ff0。以下脚本无法正常工作,因为我始终收到消息“文件非空”。怎么了?

@echo off
set out="C:\test_files\*.ff0"

if "%out%" == "" ( 
  echo File does not exist.
) else if "%out%" == "0" (
   echo File is empty.
) else (
   echo File is non-empty.
) 

第二个问题是我的批处理文件稍后将位于Intranet文件夹中的某个位置,这意味着其他人可能也可以访问。
因此,应该是完整的代码,以便执行以下操作:

1 - 确定是否存在文件的打开实例 2 - 如果有,请警告用户某人已在使用它,并且一旦关闭,其他用户可能会打开它

2 个答案:

答案 0 :(得分:3)

这将完成您问题的第一部分。这将遍历文件夹中的所有.ff0文件,并且每个文件都会告诉您它是否为空。只需在echo Empty命令下面替换或添加,即可执行您要对文件执行的操作。

@echo off
setlocal enabledelayedexpansion
for /r C:\test_files %%i in (*.ff0) do (
set size=%%~zi
if !size! gtr 0 (
echo Not empty
) else (
echo Empty!
)
)
pause >nul

关于检查文件是否打开,我不认为你可以批量执行此操作。我甚至认为除了尝试捕获错误之外,还有其他正确的编程语言可靠的方法。

希望这有帮助。

答案 1 :(得分:3)

最好这样做:

@echo off
for %%a in (c:\test_files\*.ff0) do (
  if %%~za equ 0 (
    echo %%~na is empty
  ) else (
    echo %%~na is not empty
  )
)