[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何判断某个盘是否大于指定容量,然后移动文件?

  1. @echo off & setlocal enabledelayedexpansion
  2. :step
  3. set/a num=60
  4. for /l %%a in (!num! -1 1) DO (
  5. echo 剩余时间: [%%a]
  6. timeout /t 1 /nobreak>nul & cls
  7. )
  8. move E:\*.TXT H:\
  9. goto step
复制代码
这是我编辑的每60秒把E盘的TXT文本移动到H盘里。
现在我想把H盘做个更改,增加DFGHJILKIMN盘,每个盘剩余容量大于10G的时候才把E盘的TXT文本移动过去,从D盘开始,如果D盘剩余容量小于10G了,那就不移动到D盘了,改移动到F盘,F盘不够10G了就移动到G盘。以此类推~
每60秒检查一次.
在这里卡壳了。谢谢各位大佬们了~~

  1. @echo off & setlocal enabledelayedexpansion
  2. set prefix=00000000000000000000000000000000
  3. set targetSpace=10000000000
  4. set targetSpace=%prefix%%targetSpace%
  5. set targetSpace=%targetSpace:~-32%
  6. :step
  7. set/a num=60
  8. for /l %%a in (!num! -1 1) DO (
  9. echo 剩余时间: [%%a]
  10. timeout /t 1 /nobreak>nul & cls
  11. )
  12. set volume=
  13. for %%A in (D F G H I J I L K M N) do (
  14.   for /f "tokens=*" %%B in ('wmic path win32_volume where "DriveLetter='%%A:'" get freespace /value^|find "="') do set %%B
  15.   set freespace=%prefix%!freespace!
  16.   set freespace=!freespace:~-32!
  17.   if "!freespace!" gtr "!targetspace!" set "volume=%%A:\" & goto break
  18. )
  19. :break
  20. if defined volume move E:\*.txt !volume!
  21. goto step
复制代码
微信:flashercs
QQ:49908356

TOP

为纯P编程打造的一些常用利刃...在此可派上用场:
1. 获取磁盘剩余空间

md 【tmp】
for /f "tokens=1-2 delims=个目录 " %%1 in ('dir /-c 【tmp】^| findstr /c:" 可用字节" ') do set diskV=%%2
rd 【tmp】
echo,%diskV%

2.字节单位转GB单位(即给纯P一个浮点除法及其圆整功能)

for /f "delims=" %%v in ('mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Math.floor(%diskV%/1073741824));close();" ') do set diskV_GB=%%v
echo,%diskV_GB%

TOP

返回列表