| 
 
wmysbbs 
初级用户
 
  
 
  
 
积分 172 
发帖 52 
注册 2005-3-29 
状态 离线
 | 
『第 16 楼』:
 
 
使用 LLM 解释/回答一下
  
哦,是这样的,刚才我想了想,重新整理了一下思路 
 
功能要求应该是这样: 
 
读取A.txt的内容,把日期为今天的和显示"成功"的都输出到 今天更新.txt里面,只要第二个字段就可以了,也就是游戏名 
 
然后再根据 今天更新.txt 执行xcopy 
 
 
 
就是你说的 
 
由A.txt 直接经过时间过滤出来,在今日更新.txt不要其他字段了。 
 
 Last edited by wmysbbs on 2009-6-25 at 12:51 ] 
 
    
 
  
 |   
 | 
  2009-6-25 12:50 | 
  
 | 
 | 
 
wmysbbs 
初级用户
 
  
 
  
 
积分 172 
发帖 52 
注册 2005-3-29 
状态 离线
 | 
『第 17 楼』:
 
 
使用 LLM 解释/回答一下
  
呵呵,OK了 
 
if "!gu!" == "!han!" echo !ye:~3! >>!datais!今天更新.txt 
 
    
 
  
 |   
 | 
  2009-6-25 13:06 | 
  
 | 
 | 
 
Hanyeguxing 
银牌会员
 
      正在学习中的菜鸟...
  
 
积分 1039 
发帖 897 
注册 2009-3-1 来自 在地狱中仰望天堂 
状态 离线
 | 
『第 18 楼』:
 
 
使用 LLM 解释/回答一下
  
 
@echo off&&setlocal enabledelayedexpansion  
del C:\今天更新.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 (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!>>C:\今天更新.txt 
) 
pause 
  
 
    
 
 
 
  
  |  
                  
  
                     批处理之家 http://bbs.bathome.net/forum-5-1.html |   
 | 
  2009-6-25 13:07 | 
  
 | 
 | 
 
wmysbbs 
初级用户
 
  
 
  
 
积分 172 
发帖 52 
注册 2005-3-29 
状态 离线
 | 
『第 19 楼』:
 
 
使用 LLM 解释/回答一下
  
谢谢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 
 
    
 
  
 |   
 | 
  2009-6-25 13:12 | 
  
 | 
 | 
 
Hanyeguxing 
银牌会员
 
      正在学习中的菜鸟...
  
 
积分 1039 
发帖 897 
注册 2009-3-1 来自 在地狱中仰望天堂 
状态 离线
 | 
『第 20 楼』:
 
 
使用 LLM 解释/回答一下
  
批处理的开头都已经使用@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 ] 
 
    
 
  
  |  
                  
  
                     批处理之家 http://bbs.bathome.net/forum-5-1.html |   
 | 
  2009-6-25 13:20 | 
  
 | 
 | 
 
wmysbbs 
初级用户
 
  
 
  
 
积分 172 
发帖 52 
注册 2005-3-29 
状态 离线
 | 
 | 
  2009-6-25 13:31 | 
  
 | 
 | 
 
wmysbbs 
初级用户
 
  
 
  
 
积分 172 
发帖 52 
注册 2005-3-29 
状态 离线
 | 
 | 
  2009-6-25 13:32 | 
  
 | 
 | 
 
wmysbbs 
初级用户
 
  
 
  
 
积分 172 
发帖 52 
注册 2005-3-29 
状态 离线
 | 
『第 23 楼』:
 
 
使用 LLM 解释/回答一下
  
@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 ] 
 
    
 
  
 |   
 | 
  2009-6-25 13:43 | 
  
 |