L'espace libre dans un CMD shell
Est-il un moyen d'obtenir le montant de la gratuité de l'espace disque 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 niveau de retour de la commande copier, mais puis-je attendre pour le moment
il faut copier le fichier (par exemple...pour que le disque est plein et que l'opération de copie échoue).
Je voudrais savoir avant de me lancer la copie si c'est une idée. Essayé le DU.EXE utilitaire de Sysinternals, mais qui montrent de l'espace occupé seulement.
Vous devez vous connecter pour publier un commentaire.
Si vous exécutez "
dir c:\
", la dernière ligne vous donnera l'espace disque libre.Edit:
Meilleure solution: "
fsutil volume diskfree c:
"dir ..*
(oudir c:\thing\..*
) montrent une très courte liste, si oui ou non il y a zéro ou plusieurs fichiers dans le répertoire.Une solution possible:
plus "solution avancée", pour Windows Xp et au-delà:
La Windows Management Instrumentation de ligne de Commande (WMIC) outil (Wmic.exe)
pouvez recueillir de grandes quantités de l'information sur un ordinateur Windows Server 2003 et de Windows XP ou Vista. L'outil accède au matériel sous-jacent à l'aide de Windows Management Instrumentation (WMI). Pas pour Windows 2000.
@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
dir
semble être le seul qui fonctionne avec les chemins d'accès UNC.fsutil
comme mentionné dans l'autre réponse?fsutil
avoir besoin des privilèges d'Administrateur pour exécuter même, indépendamment de ce que vous faites avec elle.fsutil volume diskfree c:
fonctionne très bien pour moi (win 8.1), même sur le compte invité. Quel système utilisez-vous?435,809,374,208
pour wmic,435,809,333,248
pour dir, et435,809,529,856
pour fsutil. Quelle est la raison de la différence dans les chiffres rapportés et qui serait l'exacte?Vous pouvez éviter les virgules par l'utilisation de /-C sur la commande DIR.
Si vous voulez comparer l'espace disponible à l'espace nécessaire, vous pourriez faire quelque chose comme ce qui suit. J'ai spécifié le nombre avec séparateur de milliers, puis les retirer. Il est difficile de saisir le nombre sans virgule. L'UNE est belle, mais elle arrête de travailler avec de grands nombres.
Le script suivant va vous donner octets libres sur le disque dur:
Noter que cela dépend de la sortie de votre
dir
de commande, qui a besoin de 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 s'appuyer sur la définition debytesfree
pour chaque ligne).tokens=
peu pour obtenir un autre mot).,
caractère (ou vous pouvez modifier le remplacement de la virgule vers quelque chose d'autre).De ne pas polluer votre environnement d'espace de noms, seulement le
bytesfree
variable sur la sortie. Si votredir
de sortie est différente (par exemple, des paramètres régionaux différents ou des paramètres de langue), vous aurez besoin d'ajuster le script.df.exe
Montre tous vos disques; total, utilisé et l'espace disponible. Vous pouvez modifier la sortie par les différentes options de ligne de commande.
Vous pouvez l'obtenir à partir d' http://www.paulsadowski.com/WSH/cmdprogs.htm, http://unxutils.sourceforge.net/ ou quelque part d'autre. C'est un standard unix-util comme du.
df -h
montrera tous de votre disque dur espace disque utilisé et disponible. Par exemple:Cygwin est disponible gratuitement à partir de: https://www.cygwin.com/
Il ajoute de nombreux outils puissants à l'invite de commande. Pour obtenir tout l'espace disponible sur le lecteur M (comme mappé dans windows sur un lecteur partagé), on pourrait entrer dans:
À l'aide de cette commande, vous pouvez trouver toutes les partitions, la taille & espace libre:
wmic logicaldisk get size, freespace, caption
À l'aide de paxdiablo excellente solution, j'ai écrit un peu plus sophistiqué script batch, qui utilise la lettre de lecteur que l'argument entrant et vérifie si le lecteur existe un sujet délicat (mais pas de la beauté) de manière à:
note1: vous pouvez taper simple lettre (par exemple. x) ou peut utiliser x: x:\ format en tant que lettre de lecteur dans l'argument
note2: script va afficher la sortie stderr d' %chkfile% seulement si la taille plus grand que 0
nota3: j'ai sauvé ce script comme freedisk.cmd (voir la section utilisation)
Est cscript une 3ème partie de l'app?
Je vous propose d'essayer Microsoft Scripting, où vous pouvez utiliser un langage de programmation (JScript, VBS), pour vérifier des choses comme Liste D'Espace Disque Disponible.
Le script de l'infrastructure est présente sur toutes les versions de Windows (y compris 2008).
cscript
est Microsoft Scripting. C'est la version de la console de Windows scripting interprète (wscript
est la version graphique).Sur Windows 10, le copy et xcopy opérations ne sont pas immédiatement, dans le cas où un fichier est copié qui est trop grand pour le répertoire cible. Donc, il n'est pas nécessaire pour vérifier l'espace disque disponible avant de commencer l'opération de copie.