如题
请大家帮我写下
谢谢!!!
请大家帮我写下
谢谢!!!
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off
echo 请输入起始日期 如:2007-3-29
set /p d=
echo 请输入结束日期 如:2007-4-29
set /p h=
set /p var=<a.txt
cls
echo %var%
setlocal EnableDelayedExpansion
for /f "delims=" %%i in (a.txt) do (
for /f "tokens=5 delims= " %%a in ("%%i") do (
if not "%%a"=="" (
set num=%%a
set num=!num:年=-!
set num=!num:月=-!
set num=!num:日=!
if !num! geq !d! if !num! leq !h! echo %%i
)))
pause
sed "/^\(]\+]\+\)\{4\}2007年4月20.*/,/^\(]\+]\+\)\{4\}2007年10月20.*/!d" UrTestFile.txt|sed "1d;$d"
Originally posted by 26933062 at 2007-10-30 11:53 PM:
@echo off
echo 请输入起始日期 如:2007-3-29
set /p d=
echo 请输入结束日期 如:2007-4-29
set /p h=
set /p var=<a.txt
cls
echo %var%
setlocal EnableDelayedExpansion
...
set a=2007-4-21
set b=2007-10-21
if %a% lss %b% (echo yes) else echo no
pauseOriginally posted by junchen2 at 2007-10-31 12:55 AM:
echo off
@for /f "tokens=1-6 delims=: " %%a in ('findstr /n " 2007年4月20日 " 111.txt') do (
if "%%f" == "2007年4月20日" set n=%%a& goto 2
)
:2 ...
Originally posted by abcd at 2007-10-31 12:26 PM:
sed是第三方命令行工具
需要下载的,论坛似乎是有的,楼主自己搜索一下
Originally posted by abcd at 2007-10-31 01:30 PM:
当然是可以实现的,不过效率很明显没有sed高的
有时候不要这么执着于非用windows自带命令不可
处理文本不就是为了效率吗?
如果纯研究的话, ...
@echo off
for /f "skip=1 tokens=1-6" %%i in (t.txt) do (
set dt=%%m
setlocal enabledelayedexpansion
set dt=!dt:年= !
set dt=!dt:月= !
set dt=!dt:日=!
call :ys "!dt!"
if "!string:~1!" gtr "2007-04-20" if "!string:~1!" lss "2007-10-20" echo %%i %%j %%k %%l %%m %%n
endlocal
)
pause
goto :eof
:ys
set string=
for %%a in (%~1) do (
if %%a leq 9 (set str=0%%a) else (set str=%%a)
set string=!string!-!str!
)
@echo off
setlocal EnableDelayedExpansion
echo 请输入起始日期 如:2007 3 29
set /p d=
call :lis "%d%" d
echo 请输入结束日期 如:2007 10 9
set /p h=
call :lis "%h%" h
set /p var=<a.txt
cls
echo %var%
for /f "delims=" %%i in (a.txt) do (
for /f "tokens=5 delims= " %%a in ("%%i") do (
if not "%%a"=="" (
set num=%%a
set num=!num:年=-!
set num=!num:月=-!
set num=!num:日=!
call :lis "!num!" num
if !num! geq !d! if !num! leq !h! echo %%i
)))
pause
exit
:lis
for /f "tokens=1-3 delims=- " %%a in ("%~1") do (
set m=0%%b
set yy=0%%c
set %2=%%a-!m:~-2!-!yy:~-2!
)
goto :eof