获取的*空间“C:”使用驱动器批处理文件
答
下面的脚本会给你的驱动器上的*字节:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "tokens=3" %%a in ('dir c:\') do (
set bytesfree=%%a
)
set bytesfree=%bytesfree:,=%
echo %bytesfree%
endlocal && set bytesfree=%bytesfree%
注意,这取决于你的dir
命令的输出,需要包含的*空间中的最后一行格式为24 Dir(s) 34,071,691,264 bytes free
。具体做法是:
- 它必须是最后一行(或者你可以修改
for
循环检测线明确,而不是依赖于每一行设置bytesfree
)。 - 可用空间必须是第三个“单词”(或者您可以更改
tokens=
位以获取不同的单词)。 - 千位分隔符是
,
字符(或者您可以将逗号替换为其他位置)。
它不污染你的环境命名空间,只在退出时设置bytesfree
变量。如果您的dir
输出不同(例如,不同的语言环境或语言设置),则需要调整脚本。
+0
我不得不使用这个脚本的输出,并建立一个'if'表达式来确定我是否必须删除旧的文件关闭驱动器。我用: 'ECHO%bytesfree%> x&FOR %%? IN(x)DO SET/A strlen = %%〜z? - 2&del x * newline * IF%strlen%LEQ 13 [...]' –
http://*.com/questions/293780/free-space-in-a-cmd-shell – bdares