中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何根据TAR文件的状态把文件分类?
« [1] [2] »
作者:
标题: 如何根据TAR文件的状态把文件分类? 上一主题 | 下一主题
joshualaw
初级用户





积分 132
发帖 62
注册 2007-6-5
状态 离线
『楼 主』:  如何根据TAR文件的状态把文件分类?

各位高手:
请帮我写一个能实现下列功能批处理。

1. 假设在 C:\log 文件夹有许多 .TAR 文件(已压缩的文件),而且每个.TAR文件只有一种状态,要么是 TP要么是 TF (你可从 .TAR 文件看出来)

2. 要把带有TP或TF的 .TAR文件区别开来,例如:把带有TF的 .TAR文件移到 C:\log\TF\文件夹里,

3.由于无法附上.TAR原文件,只有附上.TAR文件的内容在此给各位参照
************************************************************
SBS7152297IB
CWHP
BWHP UI
Nhuawhpfct11
PFVT
s0
D2217.scr
R???
nW10110641
rREL
OC900260
L29
p11
W???
[06/01/07 20:13:16
]06/01/07 20:13:36
TF
FWRCVP_Disable Heartbeat
>WIDE_RECEIVE_PACKET (Disable Heartbeat Broadcast packet)
>RcvPacket() returned an error
>Timeout getting packet byte
MWide_FW_Version
d0x11
************************************************************

[ Last edited by bjsh on 2007-7-31 at 02:28 PM ]

   此帖被 -2 点积分    点击查看详情   
评分人:【 lxmxn 分数: -2  时间:2007-6-16 21:47


2007-6-13 22:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

楼主的意思是说,只要TAR文件中包含TF的就放入TF文件夹,TP的就放入TP文件夹?

2007-6-13 22:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
joshualaw
初级用户





积分 132
发帖 62
注册 2007-6-5
状态 离线
『第 3 楼』:  

是的,能做的到吗,谢谢您的及时回复

2007-6-13 22:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 4 楼』:  

对TAR文件一点不熟悉。只知道是Linux下的压缩文件。

楼主的文件内容是如何提取出来的?

是文件名称,还是只是文本内容?

2007-6-13 23:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
joshualaw
初级用户





积分 132
发帖 62
注册 2007-6-5
状态 离线
『第 5 楼』:  

先指着.TAR文件后右击鼠标选记事本打开的,外表看是一个压缩文件,其实内容是文本内容

2007-6-13 23:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 6 楼』:  

这个可以参考一下。
@echo off&setlocal enabledelayedexpansion
if not exist TF md TF
if not exist TP md TP
for /f %%i in ('dir /b *.txt') do (
  find /c "TF" %%i
  if !errorlevel!==0 copy %%i TF\%%i&del /q /f %%i
)
copy *.txt TP\*.txt
del /q /f *.txt
偶假设当前文件夹下有许多文本文件,其中也只包含TF或TP字符。

2007-6-14 00:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
joshualaw
初级用户





积分 132
发帖 62
注册 2007-6-5
状态 离线
『第 7 楼』:  

先谢谢高手,基本功能可以实现但还不能100%精确的把含有TP 或 TF 字符的.TAR文件区别开来,例如: 暂时发现下列两个文件名.TAR 文件,其内容是含有TP 的字符,但还是放在 TF的文件夹理,能否帮我再研究研究看,先谢了.

RE0724000R5CA(6-13-2007 16-3-38).TAR --->是文件名

KM107230000JLA(6-9-2007 12-41-29).TAR--->是文件名

2007-6-14 15:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 8 楼』:  

失误,忘问楼主的文件名是否含空格了。呵呵
类似的
@echo off&setlocal enabledelayedexpansion
if not exist TF md TF
if not exist TP md TP
for /f "delims=" %%i in ('dir /b *.txt') do (
  find /c "TF" "%%i"
  if !errorlevel!==0 copy "%%i" TF\"%%i"&del /q /f "%%i"
)
copy *.txt TP\*.txt
del /q /f *.txt
没测试,先看看吧。

2007-6-14 15:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
joshualaw
初级用户





积分 132
发帖 62
注册 2007-6-5
状态 离线
『第 9 楼』:  

文件名跟其它文件名一样的,(这文件名是系统自动产生的), 也试了你刚刚给我最新的但还是不行,能否方便给我你的 email address, 我把相关.TAR 文件发给你帮我看看因为我不知道怎样把那些文件附在这里.先谢拉!

2007-6-14 20:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 10 楼』:  

点引用回复,就可以添加附件了。
@echo off&setlocal enabledelayedexpansion
if not exist TF md TF
if not exist TP md TP
for /f "delims=" %%i in ('dir /b *.txt') do (
  findstr /b /r "\<TF\>" "%%i"
  if !errorlevel!==0 copy "%%i" TF\"%%i"&del /q /f "%%i"
)
copy *.txt TP\*.txt
del /q /f *.txt
[ Last edited by wudixin96 on 2007-6-15 at 10:56 AM ]

2007-6-15 00:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
joshualaw
初级用户





积分 132
发帖 62
注册 2007-6-5
状态 离线
『第 11 楼』:  

我测试了一下,暂时没有发现问题,还是高手厉害啊,我真的太笨拉,高手,现还有一问题请教,正常的批处理运行时,会在屏幕前闪一下黑色的窗口,能否有办法让批处理在后台运行,不要会在屏幕前闪一下黑色的窗口, 请赐教

2007-6-15 14:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 12 楼』:  

兄台过奖了,其实偶也一菜鸟。刚入门而已。

要隐藏运行批处理,请使用论坛的“搜索”功能。

2007-6-15 15:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lililulula
中级用户





积分 302
发帖 138
注册 2007-3-29
状态 离线
『第 13 楼』:  



  Quote:
set batname=WScript.CreateObject("WScript.Shell")
batname.run "batpath",0

保存为vbs脚本运行即可

[ Last edited by lililulula on 2007-6-15 at 04:35 PM ]

2007-6-15 16:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
joshualaw
初级用户





积分 132
发帖 62
注册 2007-6-5
状态 离线
『第 14 楼』:  

13 楼的意思我还不明白,能否详细说明一下, 我的意思是我用Windows--->Control panel-->Scheduled Task 来排一时间定期运行这一批处理,当运行时,能否有办法让批处理采用"隐藏的方式或其它的方式运行", 总之不要让人看到有黑色屏幕闪烁就行啊,

2007-6-15 16:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lililulula
中级用户





积分 302
发帖 138
注册 2007-3-29
状态 离线
『第 15 楼』:  

你将上段代码保存成vbs文件,代码里面的batpath为你bat文件的绝对路径,然后计划任务中运行这个vbs脚本

2007-6-15 17:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: