批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[原创] Ritchie Lawrence 批处理函数库中英文版




版主CrLf于20120109对以下几个函数提出的更改建议(主要针对中文版操作系统)
GetDate.CMD
GetMAC.CMD
GetTime.CMD
Timer.CMD
Uptime.CMD
http://bbs.bathome.net/thread-3056-2-1.html#pid100296

应用实例:

批处理获取指定天数之前的日期
http://www.bathome.net/thread-3330-1-1.html

批处理删除指定天数日期之前的文件
http://www.bathome.net/thread-3334-1-1.html

批处理删除指定天数日期之前的文件夹
http://www.bathome.net/thread-3503-1-1.html

批处理从FTP下载指定天数之前的文件
http://www.bathome.net/thread-4010-1-1.html

批处理从FTP下载指定小时之前的文件
http://www.bathome.net/thread-5475-1-1.html

批处理删除指定日期的分钟数之前的文件
http://www.bathome.net/thread-5648-1-1.html

批处理计算两个日期时间的差值
http://www.bathome.net/thread-11128-1-1.html

批处理计算指定分钟数之前的日期时间
http://www.bathome.net/thread-13259-1-1.html

批处理计算指定秒数之后的日期时间
http://www.bathome.net/thread-14413-1-1.html

批处理获取上个月的最后一天
http://www.bathome.net/thread-7336-1-1.html

批处理获取上个月的第一天
http://www.bathome.net/thread-3960-1-1.html

获取一个小时前的日期时间
http://bbs.bathome.net/thread-29303-1-1.html#pid145870
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

补充以上电子书的最后一页——中文翻译

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
翻译: Rice-Fans      若有不妥之处还望大家指出来,注释不敢冒昧加上!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

>>This page shows how to read specific lines from a text file. There are many ways to have the for /f command read the input file, for instance:
这篇文章演示如何从文件中读取特定的行.用for /f命令的多种变化方式可以达到该目的,例如:
---------------------------------for /f-----------------------------------------
for /f "delims=" %%a in (input.txt) do ...
for /f "delims=" %%a in ('type input.txt') do ...
for /f "delims=" %%a in ('more ^< input.txt') do ...
---------------------------------for /f-----------------------------------------

>>However, only the last method (using the more command) will give consistent results across Windows NT, 2000, XP and 2003. The first method does not recognise unicode files. Also, the usebackq switch must be used if the input filename contains spaces. The second method, using the type command, also fails to recognise unicode files on Windows 2000, XP and 2003 if the input file does not begin with a bit order mark (BOM).
然而,只有最后一种方法(用到more命令的)在windows nt,2000,xp和2003中能够得到一致的结果。第一种方法,不能有效的识别unicode编码文件,同时,如果文件名含有空格时,usebackq开关必须打开。第二种方法,用到type命令,同样在windows nt,2000,xp和2003中,不能有效识别unicode编码文件,同时,要求输入的文件内容不能以位序标志(BOM)开头.

>>In all the examples, assume the contents of of the file numbers.txt to be:
在如下所有的例子中,假设numbers.txt文件输入以下内容:
----------------------numbers.txt--------------------------
one
two
three
four
five
six
seven
eight
nine
ten
----------------------numbers.txt--------------------------

>>Displaying the first line,This example prints one.
显示第一行,打印第一行的例子如下:
------------------------1.bat------------------------------------------
@echo off & setlocal ENABLEEXTENSIONS                  
set "first="                                          
for /f "delims=" %%a in ('more ^< numbers.txt') do (     
                                                     
  if not defined first set first=%%a                    
)                                                      
echo/%first%                                             
pause>nul
------------------------1.bat-------------------------------------------

>>Displaying the first X lines,This example prints one, two and three.
显示前几行,打印第一,二,三行的例子如下:
------------------------123.bat-------------------------------
@echo off & setlocal ENABLEEXTENSIONS               
set "lines=3"                                         
set i=-1                                             
set "ok="                                             
for /f "delims=" %%a in ('more ^< numbers.txt') do (  
  set/a i+=1 & for /f %%z in ('echo/%%i%%') do (   
    if "%%z"=="%lines%" set ok=1                     
  )                                                   
  if not defined ok echo/%%a                           
)                                                   
pause>nul
------------------------123.bat-------------------------------

>>Displaying the last line,This example prints ten.
显示最后一行,打印第十行的例子如下:
------------------------10.bat--------------------------------------------
@echo off & setlocal ENABLEEXTENSIONS                             
for /f "delims=" %%a in ('more ^< numbers.txt') do set "last=%%a"
echo/%last%                                                      
pause>nul
------------------------10.bat--------------------------------------------

>>Displaying the last X lines,This example prints nine and ten.
显示最后x行,打印第9,10行的例子如下:
------------------------lastx.bat-----------------------------------------------
@echo off & setlocal ENABLEEXTENSIONS                                
set "lines=2"                                                         
for /f %%a in ('find/c /v "" ^< numbers.txt') do set/a skip=%%a-lines  
for /f "delims=" %%a in ('more/e +%skip% ^< numbers.txt') do (     
  echo/%%a                                                         
)                                                                  
pause>nul                                                           
------------------------lastx.bat------------------------------------------------

>>Displaying the Nth line,This example prints three.
Note that instead of using the more command's /e switch, the skip option could have been used with the for /f command, however, this fails is it is set to any number less than one.
显示第n行,打印第三行.
注意启用more命令的扩展功能(/e)开关,同时,ship选项过去常用于for /f命名中,但是当设定的数目小于实际值时,将导致失败
------------------------Nth.bat-----------------------------------------------
@echo off & setlocal ENABLEEXTENSIONS                          
set LineNo=3                                                
set "line="                                                     
set/a LineNo-=1                                                
for /f "delims=" %%a in ('more/e +%LineNo% ^< numbers.txt') do(
  if not defined line set "line=%%a"                           
)                                                              
echo/%line%                                                   
pause>nul                                                      
------------------------Nth.bat------------------------------------------------

>>Displaying the Nth line plus X number of lines,This example prints five and six.
显示第n+x行,打印第5,6行的例子如下:
------------------------x+Nth.bat--------------------------------------------------
@echo off & setlocal ENABLEEXTENSIONS                     
set start=5                                                
set "lines=2"                                                
set/a i=-1,start-=1                                          
set "ok="                                                     
for /f "delims=" %%a in ('more/e +%start% ^< numbers.txt') do(
  set/a i+=1 & for /f %%z in ('echo/%%i%%') do (              
    if "%%z"=="%lines%" set ok=1                           
  )                                                           
  if not defined ok echo/%%a                                   
)                                                         
pause>nul
------------------------x+Nth.bat----------------------------------------------------

TOP

回复 2楼 的帖子

那个“最后一页”不是函数库的内容吧?
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

虽然不是,但是该链接地址教程后还有此页,以求完整而已。
原文为
  +Batch Function Library
    +Batch Howto's
            - Reading Files  (以上为此页内容)
     ..............
可能还有续集吧,权且以后找到翻译再补充。提前祝大家新年好!



   .

TOP

回复 4楼 的帖子

本帖标题为“批处理函数库中英文版”,目的仅仅是收集“函数库”。
后面加上的那个跟“函数库”没什么关系吧?“以求完整”的说法可能不是太合适。
不过,仍感谢分享。
【扫描二维码捐助论坛的朋友请留言注明论坛账号】http://bbs.bathome.net/thread-10403-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

TOP

只是有些还是看不懂,等回去研究了,不懂的在回来问大家

TOP

好东西啊!!!!!!!

TOP

好,谢谢。。。。。。。。。。。。。。。。。

TOP

太有创造力了……十二万分感谢楼主……

TOP

谢过,拿来学习了!:)

TOP

确实不错的啊呀
想成为高手,必先成为菜鸟!

TOP

值得学习了!楼主辛苦了解
想成为高手,必先成为菜鸟!

TOP

下载看看,我也要学习学习一番。。。。。。

TOP

非常感谢分享哟,楼主真是好人

TOP

下载了~
学习中~
谢谢楼主~

TOP

返回列表