找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25686|回复: 4

[文本处理] 批处理如何将一个文件名有一定规律的文件的内容输出?

[复制链接]
发表于 2015-1-31 15:28:11 | 显示全部楼层 |阅读模式
情况是这样的,有一个程序每天都会在一个文件目录,如(文件名有空格):E:\MS SQL\Plan Logs\,里生成一个文件,文件名形式大概是这样的:Plan Logs_2015013015210022,前面的Plan LOGS_是固定的,接下来是日期(当天日期的前一天),时分秒。每天一般只生成一个,时分秒不确定。

现在我希望实现,把这个文件里的内容输出来,该如何实现呢?
  1. @echo off
  2. set prefilename="Plan Logs_"
  3. set yyyy=%date:~0,4%
  4. set mm=%date:~5,2%
  5. set dd=%date:~8,2%
  6. set filename=%prefilename%%yyyy%%mm%%dd%

  7. for /f "usebackq" %%i in ( 'E:\MS SQL\Plan Logs\%filename%*') do
  8. echo %%i
  9. )
  10. pasuse
复制代码
但是这样有问题:
1、日期是当天的,而不是前一天的
2、无法识别E:\MS SQL\Plan Logs\%filename%*
3、还有个问题是我尝试用for输出这个文件的内容后,发现中文都变成乱码了
发表于 2015-1-31 15:45:48 | 显示全部楼层
回复 1# hello163mailcom
  1. @echo off
  2. >dstdate.vbs echo LastDate=date()-1
  3. >>dstdate.vbs echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
  4. >>dstdate.vbs echo wscript.echo FmtDate
  5. for /f %%a in ('cscript /nologo dstdate.vbs') do set "dstdate=%%a"
  6. del dstdate.vbs /f /q >nul
  7. for /f "delims=" %%i in ('type "E:\MS SQL\Plan Logs\Plan Logs_%dstdate%*"') do echo %%i
  8. pause
复制代码
 楼主| 发表于 2015-1-31 15:56:12 | 显示全部楼层
回复 2# pcl_test


    太牛逼了,可以详细解释下吗
 楼主| 发表于 2015-1-31 16:22:43 | 显示全部楼层
回复 2# pcl_test

这个txt是utf-8格式的文件,该怎么处理呢
发表于 2015-1-31 17:17:08 | 显示全部楼层
回复 4# hello163mailcom
  1. @echo off
  2. ::获取前一天日期
  3. >dstdate.vbs echo LastDate=date()-1
  4. ::设置日期格式
  5. >>dstdate.vbs echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
  6. ::输出日期
  7. >>dstdate.vbs echo wscript.echo FmtDate
  8. ::批处理获取VBS输出的日期并赋值
  9. for /f %%a in ('cscript /nologo dstdate.vbs') do set "dstdate=%%a"
  10. del dstdate.vbs /f /q >nul
  11. copy "E:\MS SQL\Plan Logs\Plan Logs_%dstdate%*" "Plan Logs_%dstdate%_temp.txt" >nul
  12. ::转换编码
  13. iconv.exe -f utf-8 -t gbk "Plan Logs_%dstdate%_temp.txt" >> $
  14. for /f "delims=" %%i in ('type $') do echo %%i
  15. del "Plan Logs_%dstdate%_temp.txt"
  16. del $
  17. pause
复制代码
批处理跟iconv放在一起运行,需下载iconv
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 19:09 , Processed in 0.017394 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表