如何批量确保它有足够的磁盘space?
How can I make sure its enough disk space in batch?
有谁知道是否可以确保磁盘在具有批处理功能的服务器上有足够的 space?
我有一个循环的批处理脚本,我想在其中添加一个部分,以确保磁盘上有足够的 space 并在没有时给我一条消息。像这样,很容易解释:
Check diskspace
If below 10mb free space
echo low diskspace (& probably delete temp files or something)
else continue
感谢您的帮助!
这使用 dir
命令的输出来检索免费的 space。所有测试都在一个子例程中进行,该子例程接收要检查的 "drive" 作为参数和所需的字节数。退出时,如果没有足够的空闲 space.
,它会提高错误级别
批处理文件中的算术运算仅限于 2^31 个有符号整数,因此要处理大于 2147483647 的值并处理超过 2GB 的存储单元,需要更多代码。为避免这种情况,所有信息都是 indicated/retrieved 字节,填充并作为字符串进行比较。
@echo off
setlocal enableextensions disabledelayedexpansion
call :checkFreeSpace d: 123456789 && echo OK || echo No space
call :checkFreeSpace "\10.0.0.1\c$" 2000000000
if errorlevel 1 (
echo No space
) else (
echo OK
)
goto :eof
:checkFreeSpace drive spaceRequired
setlocal enableextensions disabledelayedexpansion
set "pad=0000000000000000000000000"
set "required=%pad%%~2"
for %%d in ("%~1\.") do for /f "tokens=3" %%a in ('
dir /a /-c "%%~fd" 2^>nul ^| findstr /b /l /c:" "
') do set "freeSpace=%pad%%%a"
if "%freeSpace:~-25%" geq "%required:~-25%" exit /b 0
exit /b 1
注意:此方法有一个注意事项。如果指示的目标是驱动器根目录并且其中没有任何 file/folder,则 dir
命令将找不到要列出的任何内容,并且空闲 space 将不会包含在其输出中,使测试失败,因为 free space 将为 0
有谁知道是否可以确保磁盘在具有批处理功能的服务器上有足够的 space?
我有一个循环的批处理脚本,我想在其中添加一个部分,以确保磁盘上有足够的 space 并在没有时给我一条消息。像这样,很容易解释:
Check diskspace
If below 10mb free space
echo low diskspace (& probably delete temp files or something)
else continue
感谢您的帮助!
这使用 dir
命令的输出来检索免费的 space。所有测试都在一个子例程中进行,该子例程接收要检查的 "drive" 作为参数和所需的字节数。退出时,如果没有足够的空闲 space.
批处理文件中的算术运算仅限于 2^31 个有符号整数,因此要处理大于 2147483647 的值并处理超过 2GB 的存储单元,需要更多代码。为避免这种情况,所有信息都是 indicated/retrieved 字节,填充并作为字符串进行比较。
@echo off
setlocal enableextensions disabledelayedexpansion
call :checkFreeSpace d: 123456789 && echo OK || echo No space
call :checkFreeSpace "\10.0.0.1\c$" 2000000000
if errorlevel 1 (
echo No space
) else (
echo OK
)
goto :eof
:checkFreeSpace drive spaceRequired
setlocal enableextensions disabledelayedexpansion
set "pad=0000000000000000000000000"
set "required=%pad%%~2"
for %%d in ("%~1\.") do for /f "tokens=3" %%a in ('
dir /a /-c "%%~fd" 2^>nul ^| findstr /b /l /c:" "
') do set "freeSpace=%pad%%%a"
if "%freeSpace:~-25%" geq "%required:~-25%" exit /b 0
exit /b 1
注意:此方法有一个注意事项。如果指示的目标是驱动器根目录并且其中没有任何 file/folder,则 dir
命令将找不到要列出的任何内容,并且空闲 space 将不会包含在其输出中,使测试失败,因为 free space 将为 0