Tuesday, March 1, 2011

Free space in a CMD shell

Is there a way to get the amount of free diskspace of a disk or a folder in a CMD without having to install some thirdparty applications?

I have a CMD that copies a big file to a given directory and could of course use the errorlevel return from the copy command, but then I have to wait for the time it takes to copy the file (eg...to that then the disk is full and the copy operation fails).

I would like to know before I start the copy if it is any idea at all. Tried the DU.EXE utility from Sysinternals, but that show occupied space only.

From stackoverflow
  • If you run "dir c:\", the last line will give you the free disk space.

    Edit: Better solution: "fsutil volume diskfree c:"

    VonC : Yes but you need administrator privilege to use that command...
  • A possible solution:

    dir|find "bytes free"
    

    a more "advanced solution", for Windows Xp and beyond:

    wmic /node:%COMPUTERNAME% LogicalDisk Where DriveType="3" Get DeviceID,FreeSpace|find /I "c:"
    

    The Windows Management Instrumentation Command-line (WMIC) tool (Wmic.exe) can gather vast amounts of information about about a Windows Server 2003 as well as Windows XP or Vista. The tool accesses the underlying hardware by using Windows Management Instrumentation (WMI). Not for Windows 2000.

    Joey : +1 for WMI. Should be the only stable solution. Relying on a specific language (for find) is probably a bad idea :)
  • Is cscript a 3rd party app? I suggest trying Microsoft Scripting, where you can use a programming language (JScript, VBS) to check on things like List Available Disk Space.

    The scripting infrastructure is present on all current Windows versions (including 2008).

  • df.exe

    Shows all your disks; total, used and free capacity. You can alter the output by various command-line options.

    You can get it from http://www.paulsadowski.com/WSH/cmdprogs.htm, http://unxutils.sourceforge.net/ or somewhere slse. It's a standard unix-util like du.

  • Thank you all for taking the time to answer. I now have a couple of solutions that I have to deal with. Thanks // Peter

0 comments:

Post a Comment