我想检查 windows .bat 文件中的特定文件是否为空。这是我的非工作脚本:
set dir="C:\test"
set file="%dir%\fff.txt"
cd %dir%
if %file%%~zi == 0 exit
ftp -s:"%dir%\ftp.action"
exit
你能帮我调试一下吗?
或者试试
@echo off
set "dir=C:\temp"
set "file=%dir%\a.txt"
call :CheckEmpty "%file%"
goto :eof
:CheckEmpty
if %~z1 == 0 exit
ftp -s:"%dir%\ftp.action"
goto :eof
主要区别在于我使用函数调用并使用 %~z1,因为修饰符仅适用于 %1、%2..%9 等参数或 %%a 等 for 循环参数 ...
使用文件比较的批解决方案:
type nul > blank
fc myfile blank > nul
if errorlevel 1 echo myfile is not empty
for /F %%A in ("myfile") do If %%~zA equ 0 echo myfile is empty
试试这个:
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\boot.ini", ForReading)
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close