新足迹

 找回密码
 注册

精华好帖回顾

· 俺在【Sanctuary Lakes】的买地建房接龙故事会[买地+选建筑商+选房型+开工之前+建设过程+验房+花园+篱笆+家具][全篇完结] (2011-3-22) jason2cn · 小儿女记事系列22-散落的珍珠(2月杂记) (2010-9-6) 清凉
· 葱爆螺片 (2010-3-20) iamwhoami · 球球赖赖爱情结晶成长日记(78#更新,狗宝宝趣事几则) (2009-2-1) fzha8447
Advertisement
Advertisement
查看: 1408|回复: 7

很弱的一个batch script问题 [复制链接]

发表于 2012-1-11 12:48 |显示全部楼层
此文章由 zurich 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zurich 所有!转贴必须注明作者、出处和本声明,并保持内容完整
太久没用DOS,什么都忘光了。有个很弱的batch script问题请教大家

在某文件夹下有四类文件
12345678.txt                (文件名为八位数字)
12345678_1234.txt          (文件名为八位数字_若干位数字)
12345678_NOTES.txt         (文件名为八位数字_NOTES)
12345678_NOTES_1234.txt     (文件名为八位数字_NOTES_若干位数字)

我想写一段batch script来创建4个file list分别对应这四类文件

后两类简单,
FOR %%c in (C:\test\*_NOTES.txt) DO echo %%c >> C:\test\List3.txt.
FOR %%c in (C:\test\*_NOTES_*.txt) DO echo %%c >> C:\test\List4.txt.

可前两类我实在没有头绪,还请论坛里的牛人解答
Advertisement
Advertisement

发表于 2012-1-11 13:10 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
use powershell script

Get-ChildItem c:\test |where-object {$_.Name -match "\d{8}.txt"} >> C:\test\list1.txt
Get-ChildItem c:\test |where-object {$_.Name -match "\d{8}_\d+.txt"} >> C:\test\list2.txt

评分

参与人数 1积分 +2 收起 理由
zurich + 2 多谢,不过有两个问题

查看全部评分

发表于 2012-1-11 13:13 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
FOR %%c in (C:\test\????????.txt) DO echo %%c >> C:\test\List1.txt.
FOR %%c in (C:\test\????????_????.txt) DO echo %%c >> C:\test\List2.txt.

评分

参与人数 1积分 +1 收起 理由
zurich + 1 和我开始想的一样,但不管用,会把后两种文件也列出来

查看全部评分

发表于 2012-1-11 14:13 |显示全部楼层
此文章由 zurich 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zurich 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 无视 于 2012-1-11 14:10 发表
use powershell script

Get-ChildItem c:\test |where-object {$_.Name -match "\d{8}.txt"} >> C:\test\list1.txt
Get-ChildItem c:\test |where-object {$_.Name -match "\d{8}_\d+.txt"} >> C:\test\list2.txt ...


多谢,不过有两个问题:
1、filelist的内容是这样的
    Directory: C:\test

Mode                LastWriteTime     Length Name                              
----                -------------     ------ ----                              
-a---        14/12/2011   3:31 PM       2204 00000199.txt                     

能不能只显示路径和文件名?比如 C:\test\00000199.txt

2、有没有不用powershell只用普通的batch script的法子呢?

[ 本帖最后由 zurich 于 2012-1-11 15:14 编辑 ]

发表于 2012-1-11 14:52 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 zurich 于 2012-1-11 15:13 发表


多谢,不过有两个问题:
1、filelist的内容是这样的
    Directory: C:\test

Mode                LastWriteTime     Length Name                              
----                -------------     ------ ---- ...


No worries.

1.Get-ChildItem C:\test |where-object {$_.Name -match "\d{8}.txt"} |  foreach-object {$_.Fullname} | out-file c:\test\list1.txt
  Get-ChildItem C:\test |where-object {$_.Name -match "\d{8}_\d+.txt"} |  foreach-object {$_.Fullname} | out-file c:\test\list2.txt

2. I don't know much about batch scripting, I think it's been deprecated.

评分

参与人数 1积分 +2 收起 理由
zurich + 2 感谢分享

查看全部评分

发表于 2012-1-12 08:02 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我都习惯用PHP了,很容易达到同等效果
Advertisement
Advertisement

发表于 2012-1-12 21:38 |显示全部楼层
此文章由 bluesknight 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bluesknight 所有!转贴必须注明作者、出处和本声明,并保持内容完整
还有个办法是写个vb script,用batch调用就行了
头像被屏蔽

禁止访问

发表于 2012-1-12 21:43 |显示全部楼层
此文章由 自由的心 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 自由的心 所有!转贴必须注明作者、出处和本声明,并保持内容完整
要是我记性很不好,可能会问dos是什么东西啊?

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部