Board logo

标题: (已结)怎样移动第一行内容相同 [打印本页]

作者: joshualaw     时间: 2007-7-9 18:55    标题: (已结)怎样移动第一行内容相同

1>  假设在C:\123 有很多.txt 文件,且每个文件有不同的文件名
2>  假设有任意两个几个文件,其内容含有相同的字符串(如下图第一个S后面的字符串,这是一个变量,每次是不相同的), 且要把时间最近的那个移到C:\456 下面,
3> 如下图这一例子,要把文件名为14222113.txt 移到C:\456,请问怎样用P处理实现

[ Last edited by joshualaw on 2007-8-4 at 10:42 AM ]
作者: flyinspace     时间: 2007-7-9 21:26
哇.你的描叙好难看懂啊..

看你的意思.
就是:
分析文本文件中的第一段话,判断是否等于: sbs71652gxma.
若等于这个条件,则比较文件的时间,把时间靠后的复制到c:\456中。.

提示一下,若文件非常的多的话,则执行会非常的慢的..

不过好在,你只判断第一句话。.
则问题变得简单提来。
只是又多生成了一个临时文件而已.

这样的东西,在以前的帖子中有很多...
你自己查找一下吧.
你所要做的,只是把一些代码连接起来而已。
作者: joshualaw     时间: 2007-7-10 22:40


  Quote:
Originally posted by flyinspace at 2007-7-9 09:26 PM:
哇.你的描叙好难看懂啊..

看你的意思.
就是:
分析文本文件中的第一段话,判断是否等于: sbs71652gxma.
若等于这个条件,则比较文件的时间,把时间靠 ...

不好意思,没有表达好啊, 简单来说是:
分析文本文件中的第一段话,判断是否等于: SXXXXXXXXXXXXXX (XX是个变量.且在每个文件中的XX的长度不是完全相同
若等于这个条件,则比较文件的时间,把时间靠的最近的移到C:\456

能否把首先比较字符串的相同然后比较时间的这一语句写在这

[ Last edited by joshualaw on 2007-7-10 at 10:49 PM ]
作者: zerocq     时间: 2007-7-11 11:54
for列举所有文件然后find

找出所有带相同的字符串的文件,然后再用for把时间取出来比较
作者: joshualaw     时间: 2007-7-11 13:05


  Quote:
Originally posted by zerocq at 2007-7-11 11:54 AM:
for列举所有文件然后find

找出所有带相同的字符串的文件,然后再用for把时间取出来比较

能不能具体点,或请把这两个代码写在这,好吗,谢
作者: joshualaw     时间: 2007-7-12 15:33


  Quote:
Originally posted by joshualaw at 2007-7-11 01:05 PM:



能不能具体点,或请把这两个代码写在这,谢

高手们:
请帮我把怎样比较两个文件的第一行的异同文件里的时间的代码写在这啊, 谢

[ Last edited by joshualaw on 2007-7-12 at 09:37 PM ]
作者: joshualaw     时间: 2007-7-13 19:42
高手们,请帮帮忙,把能实现这一功能的代码写在这啊因为搜索不到啊,急!!谢

[ Last edited by joshualaw on 2007-7-13 at 07:51 PM ]
作者: wudixin96     时间: 2007-7-13 22:55
不好意思。原来回的给删除。因为觉得没意义。

现在理解了。今天先睡了。明天试试。呵呵。
作者: joshualaw     时间: 2007-8-1 23:09
那位能帮忙写出这一P处理啊! 先谢谢了
作者: tao0610     时间: 2007-8-2 15:15
时间格式是这样固定的?
作者: joshualaw     时间: 2007-8-3 07:35


  Quote:
Originally posted by tao0610 at 2007-8-2 03:15 PM:
时间格式是这样固定的?

格式是这样固定的,但每次是不同的,可能有点难度,帮忙想想和出招啊! 谢

[ Last edited by joshualaw on 2007-8-3 at 07:39 AM ]
作者: tao0610     时间: 2007-8-3 09:12
有什么特殊的可以自己在改改!
@echo off&setlocal enabledelayedexpansion
if not "%1"=="★" (
     for /f "tokens=1,3*" %%a in ('%~s0 ★^|sort') do (
     if defined %%a set ★%%a=%%c
     set %%a=%%b)
for /f "tokens=2 delims==" %%a in ('set ★') do  move "%%a" C:\456\
  ) else (
for %%a in (c:\123\*.txt) do (
  set/a n+=1&&set/p x!n!=<%%a
  call :time "%%a"
  call set x!n!=%%x!n!%% %%a)
  for /l %%a in (1,1,!n!) do echo !x%%a!)
goto :eof

:time
for /f "delims=]" %%a in ('findstr "\<\][0-9]*\>" %1') do (
call set x!n!=%%x!n!%% %%a)

作者: joshualaw     时间: 2007-8-4 10:34


  Quote:
Originally posted by tao0610 at 2007-8-3 09:12 AM:
有什么特殊的可以自己在改改!

[code]
@echo off&setlocal enabledelayedexpansion
if not "%1"=="★" (
     for /f "tokens=1,3*" %%a in ('%~s0 ★^ ...

高啊!问题解决,谢谢