3

如果存在扩展名为 *.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-如果有,警告用户有人已经在使用它,一旦它关闭,其他用户可能会打开它

4

2 回答 2

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
  )
)
于 2012-07-09T15:01:30.220 回答
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

关于检查文件是否打开,我认为您不能批量执行此操作。除了尝试捕获错误之外,我什至认为在其他适当的编程语言中没有可靠的方法来做到这一点。

希望这可以帮助。

于 2012-07-04T09:50:25.610 回答