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

1.
  1. @echo off
  2. %1(for /f "delims=" %%a in ('%~s0 :^|sort /r') do del/a/f/q %%a&rd/q %%a)&exit /b
  3. set "folder=D:\BatHome"
  4. echo,"%folder%\"
  5. call :GetSubFolder "%folder%"
  6. exit /b
  7. :GetSubFolder
  8. for /f "delims=" %%a in ('dir /ad/b "%~1\"') do (
  9.     echo,"%~1\%%a\"
  10.     call :GetSubFolder "%~1\%%a"
  11. )
复制代码
2.
  1. @echo off
  2. set "wmic=wmic useraccount get name /value"
  3. (for /f "tokens=2delims==" %%a in ('%wmic%^|find "="') do (
  4.     for /f "tokens=*" %%b in ("%%a") do echo,%%b
  5. ))>$
  6. for /f "delims=" %%a in ('findstr/ixvg:"D:\BatHome_User_List.txt" $') do (
  7.     echo,增加的用户:%%a
  8. )
  9. for /f "delims=" %%a in ('findstr/ixvg:$ "D:\BatHome_User_List.txt"') do (
  10.     echo,减少的用户:%%a
  11. )
  12. del $
  13. pause
复制代码
3.
  1. :~!@#$%^&*()+-=<>?/\|
  2. @echo off&setlocal enabledelayedexpansion
  3. set "str=QWERTYUIOPASDFGHJKLZXCVBNM qwertyuiopasdfghjklzxcvbnm"
  4. set "str1=1234567890"
  5. set /p str2=<%0
  6. for /l %%a in (1001 1 1100) do (
  7.     set "pwd=" & set "Name=%%a"
  8.     for %%b in (%str%) do (
  9.         set "a=%%b"
  10.         set /a r=!random! %% 26
  11.         for %%c in (!r!) do set "pwd=!pwd!!a:~%%c,1!"
  12.     )
  13.     set /a r1=!random! %% 10,r2=!random! %% 21
  14.     for %%a in (!r1!) do set "pwd=!pwd!!str1:~%%a,1!"
  15.     for %%a in (!r2!) do set "pwd=!pwd!!str2:~%%a,1!"
  16.     Net User "BatHome!Name:~1!" "!pwd!%%a" /add
  17.     echo,用户名:BatHome!Name:~1! 密码:!pwd!%%a>>List.txt
  18. )
  19. pause
复制代码
4.
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2*" %%a in ('systeminfo') do (
  3.     if "%%a"=="物理内存总量:" set "mem=%%b"
  4.     if "%%a"=="可用的物理内存:" set "freemem=%%b"
  5.     if "%%a"=="系统启动时间:" (
  6.         for /f "tokens=1-8" %%i in ("%%b %%c") do (
  7.             set /a "st=%%i*24*3600+%%k*3600+%%m*60+%%o"
  8.         )
  9.     )
  10. )
  11. set /a "mem1=%mem:,=%0/1024,mem2=100*(%mem:,=%-%freemem:,=%)/%mem:,=%"
  12. >D:\BatHome_OS.txt echo,已运行时间:%st%秒
  13. >>D:\BatHome_OS.txt echo,物理内存总量:%mem1:~,-1%.%mem1:~-1%GB
  14. >>D:\BatHome_OS.txt echo,内存使用率:%mem2%%%
  15. set wmic=wmic logicaldisk where "DriveType='3'"
  16. (for /f "tokens=1-3" %%i in ('%wmic% get freespace^,name^,size^|find ":"') do (
  17.     call :GetSize %%k00
  18.     set /a a=Size/1024
  19.     set /p=%%j容量:!a:~,-1!.!a:~-1!GB <nul
  20.     call :GetSize %%i00
  21.     set /a "b=100*(a-Size/1024)/a"
  22.     set /p=使用率:!b!%%<nul
  23.     echo,
  24. ))>>D:\BatHome_OS.txt
  25. pause&goto :eof
  26. :GetSize
  27. set "num=%1"&set "Size="&set "n="
  28. for %%a in (16 8 4 2 1) do (
  29.     if not "!num:~%%a!"=="" set /a n+=%%a&set "num=!num:~%%a!"
  30. )
  31. set "num=%1"
  32. set /a n-=6
  33. for /l %%a in (!n! -1 1) do (
  34.     set "s=!num:~,-%%a!"
  35.     if "!s:~,1!"=="0" set "s=!s:~1!"
  36.     set /a m=s%%1048576,s/=1048576
  37.     set "Size=!Size!!s!"
  38.     set "num=!m!!num:~-%%a!"
  39. )
  40. if "!Size:~,1!"=="0" set "Size=!Size:~1!"
复制代码
5.
  1. @echo off
  2. ::需要更改 Name 和 PWD 为实际的登录用户名和密码
  3. more +6 "%~0">"%~dp0Back.bat"
  4. schtasks /create /tn FulBack /tr "cmd /cxcopy /shcy \"D:\www.bathome\*\" \"D:\bbs.bathome\\"" /sc weekly /d sun /ru Name /rp PWD
  5. schtasks /create /tn IncBack /tr \""%~dp0Back.bat"\" /sc weekly /d mon,tue,wed,thu,fri,sat /ru Name /rp PWD
  6. pause&goto :eof
  7. pushd "%~dp0"
  8. (for %%a in ("\logs\" "\img\" ".zip" ".bak") do echo,%%~a)>$
  9. xcopy /shcdy /exclude:$ "D:\www.bathome\*" "D:\bbs.bathome\"
  10. del $
复制代码
6.
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p Num1=输入被除数(正整数):
  3. set /p Num2=输入除数(小于9位数的正整数):
  4. set "x=100"
  5. set /a Len1=Len2=0&set "tmp=%Num1%"
  6. for %%a in (64 32 16 8 4 2 1) do (
  7.     if "!tmp:~%%a!" neq "" set /a Len1+=%%a&set "tmp=!tmp:~%%a!"
  8. )
  9. set "tmp=%Num2%fedcba9876543210"
  10. set /a Len2=0x!tmp:~15,1!
  11. for /l %%a in (1 10 %x%) do set "str=!str!0000000000"
  12. set "str=%Num1%%str%0"
  13. set /a n = Len1 - Len2 + x + 1
  14. for /l %%a in (!n! -1 1) do (
  15.     set "s=!str:~,-%%a!"
  16.     if "!s:~,1!"=="0" set "s=!s:~1!"
  17.     set /a m=s %% Num2,s/=Num2
  18.     set "Size=!Size!!s!"
  19.     set "str=!m!!str:~-%%a!"
  20. )
  21. if %Len1% lss %Len2% (
  22.     set "Size=0000000000!Size!" & set "Size=!Size:~-%x%!"
  23. ) else if "!Size:~,1!"=="0" set "Size=!Size:~1!"
  24. echo,%Num1% ÷ %Num2% = !Size:~,-%x%!.!Size:~-%x%!
  25. pause
复制代码
7.
  1. @echo off&setlocal enabledelayedexpansion
  2. ::需要第三方工具 wget 和 geturls
  3. set "url=http://www.zhuoku.com/zhuomianbizhi/show/index-1.htm"
  4. set "str=tool.zhuoku.com/tool/dyw_size.php?width=1440&height=900&corp_x=center&corp_y=top&picurl=.."
  5. wget -O "%tmp%\$1" "%url%" 2>nul
  6. md show 2>nul
  7. for /f "delims=" %%a in ('geturls /s:"zhuomianbizhi"^<"%tmp%\$1"^|findstr /i "\/[0-9]*\.htm$"') do (
  8.     if not defined %%~na (
  9.         wget -O "%tmp%\$2" "http://www.zhuoku.com/%%a" 2>nul
  10.         for /f "delims=" %%b in ('geturls^<"%tmp%\$2"^|findstr /i "\.jpg$"')do (
  11.             set "a=%%b"
  12.             set "a=!a:/thumbs/tn_=/!"
  13.             for /f "delims=" %%c in ("!a:img.zhuoku.com=%str%!") do (
  14.                 wget -O "show\%%~nxc" "%%c"
  15.             )
  16.         )
  17.         set "%%~na=1"
  18.     )
  19. )
  20. del "%tmp%\$*"
复制代码
8.
  1. @echo off&setlocal enabledelayedexpansion
  2. %1(for /f "tokens=2delims=." %%a in ('%~s0 :^|sort') do echo,%%a)>b.txt&exit /b
  3. for /f "delims=" %%a in (a.txt) do (
  4.     set "a=%%a" & set /a n=0
  5.     for %%b in (整 角 分) do set "a=!a:%%b=!"
  6.     for %%b in (捌 玖 拾) do set "a=!a:零%%b=%%b!"
  7.     set "a=!a:拾=*10+!"
  8.     set "a=!a:佰=*100+!"
  9.     set "a=!a:仟=*1000+!"
  10.     for %%b in (零 壹 贰 叁 肆 伍 陆 柒 捌 玖) do (
  11.         for %%c in (!n!) do set "a=!a:%%b=%%c!"
  12.         set /a n+=1
  13.     )
  14.     set "a=!a:+万=万!" & set "a=!a:+圆=圆!"
  15.     if "!a:万=!" neq "!a!" set "a=(!a:万=)*10000+!"
  16.     if "!a:圆=!"=="!a!" set "a=0圆!a!"
  17.     set "a=!a:+圆=圆!"
  18.     set "b=!a:*圆=!00"
  19.     set "b=!b:~,2!"
  20.     for /f "delims=圆" %%b in ("!a!") do set /a "a=%%b"
  21.     set "str=..........!a!!b!"
  22.     echo,!str:~-11!.%%a
  23. )
复制代码
9.
  1. @echo off&setlocal enabledelayedexpansion
  2. md "%tmp%\~tmp\" 2>nul
  3. for /d /r "f:\" %%a in (*) do (
  4.     set /a n+=1
  5.     set "_!n!=%%a"
  6.     (for %%b in ("%%a\*") do echo,%%~nxb)>"%tmp%\~tmp\!n!.tx"
  7. )
  8. pushd "%tmp%\~tmp\"
  9. (for /l %%a in (1 1 !n!) do (
  10.     for /f "delims=" %%b in ('findstr/imxg:%%a.tx *.tx 2^>nul')do (
  11.         if /i not "%%a.tx"=="%%b" (
  12.             fc /c %%a.tx %%b|find /i "FC: 找不到">nul && (
  13.                 if not defined #%%a (
  14.                     echo,!_%%a!&type %%a.tx&echo,
  15.                     set #%%a=1
  16.                 )
  17.                 if not defined #%%~nb (
  18.                     echo,!_%%~nb!&type %%b&echo,
  19.                     set #%%~nb=1
  20.                 )
  21.             )
  22.         )
  23.     )
  24. ))>"%~dp0List.txt"
  25. popd&rd "%tmp%\~tmp\" /s /q
  26. pause
复制代码
10.
  1. @echo off
  2. (echo,^<html^>&echo,^<body^>)>a.html
  3. (for /f "delims=" %%a in ('findstr/ivn "^图[0-9]*\.[0-9]*" a.txt') do (
  4.     set "str=%%a"
  5.     setlocal enabledelayedexpansion
  6.     set "str=!str:*:=!"
  7.     if "!str:~,1!"=="第" if "!str:章=!" neq "!str!" set flag=1
  8.     if defined flag (
  9.         echo,^</br^>
  10.         set "str=<p>!str!</p>"
  11.     ) else (
  12.         if "!str!" neq "" (
  13.             set "str=&nbsp;&nbsp;&nbsp;&nbsp!str!</br>"
  14.         ) else set "str=!str!</br>"
  15.     )
  16.     echo,!str!
  17.     endlocal
  18. ))>>a.html
  19. (echo,^</body^>&echo,^</html^>)>>a.html
  20. pause
复制代码

TOP

啊啊啊,居然是我拿第一?感觉像做梦,嗯嗯,高兴ing
感谢斑竹!感谢管理员!!!

TOP

本帖最后由 apang 于 2013-9-15 17:23 编辑

回复 24# PowerShell


   
敢问6楼apang:你这脚本测试时运行了多少小时?我这初步看貌似得2---3天!


此代码运行速度与分区中目录总数及文件总数有关,与相同的目录个数有关,而与硬盘数据大小没有直接关系。本人代码没有考虑分区中目录总数几千几万,文件总数几万几亿的情况。

在我的本本上(acer aspire 4750g,Win7 sp1),d:盘 1018个目录,7859个文件,测试用时10分14秒,生成List.txt大小44.9KB,List.txt中相同目录个数为451个

-------------------------------------------------------------------------------------------------------------

今天又测试,代码第12行改成: if /i not "%%a.tx"=="%%b" if not "!#%%a!!#%%~nb!"=="11" (
同样测试D盘,效率有所提高,用时=4分38秒,生成的List.txt与修改前相同

TOP

返回列表