[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 terse 于 2013-9-27 16:26 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. if "%~1" == "" (
  3. set d=%date:~,4%年
  4. (for /f "tokens=1*" %%i in ('%~s0 $ ^|sort/r') do (
  5. echo %%j %%i
  6. for /f "tokens=1-3 delims=:" %%a in ("%%i") do (
  7. set /a h+=1%%a-100,m+=1%%b-100,s+=1%%c-100
  8. )
  9. )
  10. set /a m+=s/60,h+=m/60,s%%=60,m%%=60
  11. for %%a in (h m s) do if !%%a! lss 10 set %%a=0!%%a!
  12. echo,合计:!h!:!m!:!s!)>b.txt
  13. exit
  14. ) else for /f "skip=1tokens=1-3" %%a in (a.txt) do (
  15.    if "%%c" lss "0" (
  16. for /f "delims=-.:/\ tokens=1-2" %%i in ("%%a") do (
  17. set "str=%d%%%i月%%j日 %%c"
  18. )
  19.    ) else for /f "tokens=1-3 delims=:" %%i in ("%%i") do (
  20.                        if "%%k" == "" (set h=00:) else set "h="
  21.                        echo !h!%%c !str!
  22.                   )
  23.        )
复制代码
1

评分人数

TOP

回复 15# 非常感谢


    那能否请楼主谈谈,你在批处理之家学到了什么知识,怎么样才能让你学会重定向到文本这一基础操作?
***共同提高***

TOP

本帖最后由 foxJL 于 2013-9-27 15:32 编辑

回复 8# DAIC
  1. @echo off >b.txt
  2. @echo off&setlocal enabledelayedexpansion
  3. for /f "skip=1 delims=" %%a in (a.txt) do (
  4.   set /a n+=1
  5.   if not defined str (
  6.     for /f "tokens=1,2,4 delims=- " %%b in ("%%a") do set "str=%date:~,4%年%%b月%%c日 %%d"
  7.     ) else (
  8.     for /f "tokens=3,4 delims=: " %%b in ("%%a") do (
  9.       set "_%%b%%c_!n!=!str! %%b:%%c"&set "str="
  10.       set /a m+=1%%b %% 100,s+=1%%c %% 100
  11.       if !s! gtr 60 set /a s-=60,m+=1
  12.       if !m! gtr 60 set /a m-=60,h+=1
  13.     )
  14.   )
  15. )
  16. for /f "tokens=2 delims==" %%a in ('set _^|sort /r') do echo,%%a
  17. for %%a in (h m s) do set "%%a=00!%%a!"&set "%%a=!%%a:~-2!"
  18. echo,合计:%h%:%m%:%s% >>b.txt
  19. pause>nul
复制代码

TOP

回复 17# batman


    我相信这个帖子会让我学会重定向,再过1,2年也能看懂您写的代码(不是难度大的)就可以了,,,,

TOP

回复 16# terse
2013年9月26日 +333333333333 11:11
2013年9月26日 +444444444444 00:08
2013年9月26日 +222222222222 00:00
2013年9月26日 +111111111111 00:00
合计:00:11:19

---------------------------------------
用主题里的4个号码做了测试,,,估计是时间格式00:00:00问题     提取无效号码后的图片

TOP

回复 18# 非常感谢


    第16行还有一个echo

TOP

回复 19# 非常感谢


论坛有重定向的教程
http://www.bathome.net/thread-3296-1-1.html

TOP

回复 21# DAIC

谢谢您,2楼脚本的导出b.txt学会了,,,,,,今天真高兴。也谢谢batman.
>>b.txt

TOP

本帖最后由 terse 于 2013-9-27 16:27 编辑

回复 20# 非常感谢
怎么测试的 最好贴出代码 以便更快的解决问题 或者是无效号码的标志是什么
前面代码已修改 添加显示小时

TOP

本帖最后由 非常感谢 于 2013-9-27 19:08 编辑

回复 24# terse

http://www.bathome.net/viewthread.php?tid=26288&highlight=

无效号码的标准是。一个号码的打3遍,通1遍,2遍不通算有效号码。打3遍,3遍不通算无效。脚本您以前给过了。上面是地址
下面是您给的代码:代码第五行去掉00:就可以用了。
@echo off&setlocal enabledelayedexpansion
if "%~1" == "" (
        set /a m=n=0
        (for /f "tokens=1-3" %%a in ('%~s0 #‘) do (
                if "%%a" == "00:00:00" (
                        if not defined %%c set /a n+=1&echo %%b %%c %%a
                ) else         for /f "tokens=1-3 delims=:" %%i in ("%%a") do (
                                set /a hh+=1%%i-100,mm+=1%%j-100,ss+=1%%k-100
                                if not defined %%c set /a m+=1
                        )
                                set %%c=a
        )
        echo 合计无效号码数:!n! 个&echo 合计有效号码数:!m! 个)>b.txt
        pause&exit
) else (for /f "tokens=1-3" %%i in (a.txt) do @if not %%k# == # @echo %%k %%i %%j)|sort /r

  --------------------------------------------------------------------------------------------------------
谢谢您!!!

TOP

返回列表