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

[文件操作] 批处理如何删除大小为0KB的文件?

[复制链接]
发表于 2016-4-24 15:01:12 | 显示全部楼层
回复 15# CGQNET


    卧槽!敢这么写也是心够大…
  1. hash /s /z::~0 /do:"echo del ""%%s"""
  2. pause
复制代码
危险操作,请确认无误后把 echo 去掉再执行
发表于 2016-4-24 17:13:23 | 显示全部楼层
回复 16# CrLf


    哈哈,应该先备份一下再操作。
前几天我信心爆棚地删删删删删删删删。。也不知道删了啥东西,现在系统死了几天现在也没能恢复过来。
发表于 2016-4-24 17:22:19 | 显示全部楼层
本帖最后由 Nsqs 于 2016-4-24 17:25 编辑

关于0kb删除
  1. @echo off&setlocal enabledelayedexpansion
  2. :return
  3.         set/a n=-1,p=-1,cc=0
  4.         for /f "delims=" %%1 in ('dir/s/b/a-d')do (
  5.                 if %%~z1 equ 0 (
  6.                 set/a p+=1
  7.                 set f!p!=%%1
  8.                 set s!p!=%%~nx1
  9.                 if !n! lss 9 set /a n+=1&call echo [!n!]%%~nx1
  10.         ))
  11.         set c=-1
  12. :select
  13.         echo 输入u表示上一页;l表示下一页;
  14.         set /p input=输入要删除的编号(A表示全部删除;[0-9]表示删除第n项;s表示删除10个):
  15.         if /i "%input%"=="s" call:_N
  16.         if /i "%input%"=="a" call:_all
  17.         if /i "%input%"=="u" set/a cc-=1, c=cc*10&call:_U
  18.         if /i "%input%"=="l" set/a cc+=1, c=cc*10&call:_L
  19.         if /i "%input%"=="q" exit
  20.         echo %input%|findstr "[0-9]" >nul 2>nul
  21.         if %errorlevel%==0 set /a c=cc*10,ss=-1&call:_del
  22. goto select

  23. :_all
  24.         cls&(for /l %%1 in (0 1 %p%)do set "s%%1="&del !f%%1!&set "f%%1=")2>nul&goto :eof
  25. :_U
  26.         cls&if %c% lss 0 set/a c=0,cc=0
  27.         for /l %%1 in (0 1 9)do (set/a z=c+%%1
  28.         call set x$=%%s!z!%%
  29.         if not !x$!#==# echo [%%1]!x$!)
  30. goto :eof
  31. :_L
  32.         cls&if %c% gtr %p% set/a c=c-10,cc-=1
  33.         for /l %%1 in (0 1 9)do (
  34.                 set/a z=c+%%1
  35.                 call set x$=%%s!z!%%
  36.                 if not !x$!#==# echo [%%1]!x$!
  37.         )
  38. goto :eof

  39. :_del
  40.         cls&set/a ss+=1,r=0&set x$=!input:~%ss%,1!
  41.         if not !x$!#==# (
  42.                 set/a r=c+!x$!
  43.                 call del %%f!r!%%
  44.                 goto _del
  45.         )
  46.         call:return
  47. goto :eof
  48. :_N
  49.         cls&for /l %%1 in (0 1 10)do (
  50.                 set/a z=c+%%1
  51.                 call set x$=%%f!z!%%
  52.                 if not !x$!#==# del !x$!
  53.         )
  54.         call:return
  55. goto :eof
复制代码
发表于 2016-4-24 19:22:10 | 显示全部楼层
回复 17# codegay


    绝不告诉你我小时候在别人电脑上玩游戏,嫌文件太多找着麻烦,于是把除了 exe 以外的所有文件都删掉

评分

参与人数 1技术 +1 收起 理由
codegay + 1 111111111111

查看全部评分

发表于 2016-4-24 19:51:46 | 显示全部楼层
本帖最后由 happy886rr 于 2016-4-24 19:52 编辑

回复 17# codegay
用wimboot,或者差分vhd,系统文件都是指针,或者用RAM系统。

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

发表于 2016-4-24 21:12:15 | 显示全部楼层
回复 20# happy886rr


    好的,感谢。以前都没听说过。以后再找时间来玩。
发表于 2016-4-24 21:25:38 | 显示全部楼层
回复 21# codegay
可以把指针索引释放到内存条里,这样系统的原始文件在ssd上,索引在内存里,可以有接近内存的响应速度。我以前把win7系统全部跑在内存里,连硬盘,ssd都不需要,只需要个大内存条。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 21:25 , Processed in 0.020705 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表