获取的*空间“C:”使用驱动器批处理文件

问题描述:

可能重复:
Free space in a CMD shell获取的*空间“C:”使用驱动器批处理文件

我想编写一个批处理文件,给了我留在C盘的可用空间。 任何帮助将是巨大的

+1

http://*.com/questions/293780/free-space-in-a-cmd-shell – bdares

下面的脚本会给你的驱动器上的*字节:

@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 [...]' –