![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 02:30 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理按条件获取TXT文件内容(已解决)感谢Hanyeguxing |
| 可打印版本 2,158 / 22 |
| 第16楼 wmysbbs | 发表于 2009-06-25 12:50 |
| 初级用户 发帖 52 积分 172 | |
|
哦,是这样的,刚才我想了想,重新整理了一下思路
功能要求应该是这样: 读取A.txt的内容,把日期为今天的和显示"成功"的都输出到 今天更新.txt里面,只要第二个字段就可以了,也就是游戏名 然后再根据 今天更新.txt 执行xcopy 就是你说的 由A.txt 直接经过时间过滤出来,在今日更新.txt不要其他字段了。 [ Last edited by wmysbbs on 2009-6-25 at 12:51 ] |
|
| 第17楼 wmysbbs | 发表于 2009-06-25 13:06 |
| 初级用户 发帖 52 积分 172 | |
|
呵呵,OK了
if "!gu!" == "!han!" echo !ye:~3! >>!datais!今天更新.txt |
|
| 第18楼 Hanyeguxing | 发表于 2009-06-25 13:07 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
| 第19楼 wmysbbs | 发表于 2009-06-25 13:12 |
| 初级用户 发帖 52 积分 172 | |
|
谢谢Hanyeguxing
最终代码: @echo off&&setlocal enabledelayedexpansion set datais=C:\ del !datais!今天更新.txt /f /q>nul 2>nul set han=%date:~0,4%%date:~5,2%%date:~8,2% For /f "skip=1 tokens=1-3 delims=," %%a in (!datais!A.txt) do ( set gu=%%a set ye=%%b For /f "tokens=1-3 delims=- " %%i in ("%%c") do ( set str1=0%%j set str2=0%%k set xing=%%i!str1:~-2!!str2:~-2! ) if "!gu!" == "成功" if "!xing!" == "!han!" echo !ye!>>!datais!今天更新.txt ) For /f "delims=" %%i in (!datais!今天更新.txt) do ( @Echo xcopy C:\%%i\*.* X:\ /s/y/d/e @Echo xcopy C:\%%i\*.* F:\ /s/y/d/e ) pause |
|
| 第20楼 Hanyeguxing | 发表于 2009-06-25 13:20 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
批处理的开头都已经使用@echo off
下面就不要使用@Echo echo off被使用过一次,只要不在使用echo on,回显都将一直关闭. @是用来不显示echo off本身的 如果你想屏蔽执行成功或错误的消息,可以分别使用 >nul和 2>nul 例如: del /f /q !!datais!今天更新.txt >nul 将屏蔽正常消息的,不使用/s时,也可以不用 del /f /q !!datais!今天更新.txt 2>nul 将屏蔽错误消息"系统找不到指定的文件"的(文件早已不存在)等的. 如果你担心他会产生,可以全部使用: del /f /q !!datais!今天更新.txt >nul 2>nul 而且, For /f "delims=" %%i in (!datais!今天更新.txt) do ( 中获取的%%i不就是上面的!ye!吗,直接在那里使用就可以了,不用在for一次.. [ Last edited by Hanyeguxing on 2009-6-25 at 13:32 ] |
|
| 第21楼 wmysbbs | 发表于 2009-06-25 13:31 |
| 初级用户 发帖 52 积分 172 | |
|
好奇怪,这代码突然就用不了
|
|
| 第22楼 wmysbbs | 发表于 2009-06-25 13:32 |
| 初级用户 发帖 52 积分 172 | |
|
哦,明白了,现在的时间是26号了
|
|
| 第23楼 wmysbbs | 发表于 2009-06-25 13:43 |
| 初级用户 发帖 52 积分 172 | |
|
@echo off&&setlocal enabledelayedexpansion
set datais=C:\ del !datais!今天更新.txt /f /q>nul 2>nul del !datais!更新对比.bat /f /q>nul 2>nul set han=%date:~0,4%%date:~5,2%%date:~8,2% For /f "skip=1 tokens=1-3 delims=," %%a in (!datais!A.txt) do ( set gu=%%a set ye=%%b For /f "tokens=1-3 delims=- " %%i in ("%%c") do ( set str1=0%%j set str2=0%%k set xing=%%i!str1:~-2!!str2:~-2! ) if "!gu!" == "成功" if "!xing!" == "!han!" ( @Echo xcopy F:\更多网游\!ye!\*.* H:\更多网游\!ye!\ /s/y/d/e >>!datais!更新对比.bat @Echo xcopy F:\更多网游\!ye!\*.* K:\更多网游\!ye!\ /s/y/d/e >>!datais!更新对比.bat @Echo xcopy F:\更多网游\!ye!\*.* N:\更多网游\!ye!\ /s/y/d/e >>!datais!更新对比.bat @Echo xcopy F:\更多网游\!ye!\*.* Q:\更多网游\!ye!\ /s/y/d/e >>!datais!更新对比.bat ) ) @Echo exit >>!datais!更新对比.bat start !datais!更新对比.bat pause [ Last edited by wmysbbs on 2009-6-25 at 13:45 ] |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |