Existe-t-il un moyen d'obtenir la quantité d'espace disque libre d'un disque ou d'un dossier dans un CMD sans avoir à installer des applications tierces?
J'ai un CMD qui copie un gros fichier dans un répertoire donné et pourrait bien sûr utiliser le retour de niveau d'erreur de la commande de copie, mais je dois attendre le temps qu'il faut pour copier le fichier (par exemple ... le disque est plein et l'opération de copie échoue).
Je voudrais savoir avant de commencer la copie si c'est une idée. J'ai essayé l'utilitaire DU.EXE de Sysinternals, mais cela montre uniquement l'espace occupé.
Réponses:
Si vous exécutez "
dir c:\
", la dernière ligne vous donnera l'espace disque libre.Edit: Meilleure solution: "
fsutil volume diskfree c:
"la source
dir ..*
(oudir c:\thing\..*
) affichera une liste très courte, qu'il y ait ou non zéro ou plusieurs fichiers dans le répertoire.Une solution possible:
une solution plus " avancée ", pour Windows Xp et au-delà:
L' outil de ligne de commande Windows Management Instrumentation (WMIC) (Wmic.exe) peut collecter de grandes quantités d'informations sur Windows Server 2003 ainsi que sur Windows XP ou Vista. L'outil accède au matériel sous-jacent à l'aide de Windows Management Instrumentation (WMI). Pas pour Windows 2000.
Comme l'a noté Alexander Stohr dans les commentaires :
dir
' fera toujours le travail),dir
' dépend des paramètres régionaux.la source
@FOR /F "tokens=2 delims==" %%S IN ('wmic /NODE:"%COMPUTERNAME%" LogicalDisk Where ^(DriveType^="3" and DeviceID^="%some_folder:~0,2%"^) Get FreeSpace /VALUE') DO @SET freespace=%%S
fsutil
avoir besoin de privilèges d'administrateur pour même fonctionner, peu importe ce que vous en faites.En utilisant cette commande, vous pouvez trouver toutes les partitions, la taille et l'espace libre:
wmic logicaldisk get size, freespace, caption
la source
Vous pouvez éviter les virgules en utilisant / -C sur la commande DIR.
Si vous souhaitez comparer l'espace disponible à l'espace nécessaire, vous pouvez faire quelque chose comme ce qui suit. J'ai spécifié le nombre avec un séparateur de milliers, puis je les ai supprimés. Il est difficile de saisir le nombre sans virgule. Le SET / A est sympa, mais il cesse de fonctionner avec de grands nombres.
la source
Le script suivant vous donnera des octets libres sur le lecteur:
Notez que cela dépend de la sortie de votre
dir
commande, qui nécessite la dernière ligne contenant l'espace libre du format24 Dir(s) 34,071,691,264 bytes free
. Plus précisément:for
boucle pour détecter la ligne explicitement plutôt que de vous fier au réglagebytesfree
pour chaque ligne).tokens=
bit pour obtenir un mot différent).,
caractère (ou vous pouvez changer la substitution de la virgule à autre chose).Il ne pollue pas votre espace de noms d'environnement, ne définissant que la
bytesfree
variable à la sortie. Si votredir
sortie est différente (par exemple, des paramètres régionaux ou de langue différents), vous devrez ajuster le script.la source
df.exe
Affiche tous vos disques; capacité totale, utilisée et libre. Vous pouvez modifier la sortie par diverses options de ligne de commande.
Vous pouvez l'obtenir sur http://www.paulsadowski.com/WSH/cmdprogs.htm , http://unxutils.sourceforge.net/ ou ailleurs. C'est un utilitaire unix standard comme du.
df -h
affichera tout l'espace disque utilisé et disponible de votre lecteur. Par exemple:Cygwin est disponible gratuitement sur: https://www.cygwin.com/ Il ajoute de nombreux outils puissants à l'invite de commande. Pour obtenir uniquement l'espace disponible sur le lecteur M (tel qu'il est mappé dans Windows sur un lecteur partagé), on peut entrer:
la source
En utilisant l' excellente solution paxdiablo , j'ai écrit un script batch un peu plus sophistiqué, qui utilise la lettre de lecteur comme argument entrant et vérifie si le lecteur existe de manière délicate (mais pas esthétique):
note1: vous pouvez taper une lettre simple (par exemple, x) ou utiliser x: ou x: \ format comme lettre de lecteur dans l'argument
note2: le script affichera stderr de% chkfile% uniquement si la taille est supérieure à 0
note3: j'ai enregistré ce script sous le nom Freedisk.cmd (voir utilisation)
la source
Je fais une variation pour générer ceci à partir du script:
volume C: - 49 GB total space / 29512314880 byte(s) free
J'utilise diskpart pour obtenir ces informations.
la source
Est-ce que cscript est une application tierce? Je suggère d'essayer Microsoft Scripting , où vous pouvez utiliser un langage de programmation (JScript, VBS) pour vérifier des éléments tels que List Available Disk Space .
L'infrastructure de script est présente sur toutes les versions actuelles de Windows (y compris 2008).
la source
cscript
est Microsoft Scripting. Il s'agit de la version console de l'interpréteur de scripts Windows (wscript
c'est la version GUI).