标题: 请教一个查找匹配字符串的问题?(引申了一下,帮帮忙!)
[打印本页]
作者: Jevin
时间: 2006-11-2 10:00
标题: 请教一个查找匹配字符串的问题?(引申了一下,帮帮忙!)
新手一个:)
如何在如D:\program文件夹下查找一个与filename1名称匹配最近的文件,并将它copy到c:\
谢啦!
[
Last edited by Jevin on 2006-11-5 at 09:10 PM ]
作者: lxmxn
时间: 2006-11-2 10:05
for /f %%a in ('dir /b/a-d/s D:\program\?filename1?.exe') do @copy "%%a" c:\
大致可以满足需求了,不过不知道楼主要拷贝几个文件。代码没测试。
作者: Jevin
时间: 2006-11-2 10:20
标题: 再次请教!
谢谢!
不好意思,小弟现在有点变化了:
先根据d:\programr下的一个文件名称(此文件夹下仅有一个文件),去查找F\backup下的文件是否存在,若不存在就查找与之文件名称匹配最近r的,并将它拷贝到d:\
作者: namejm
时间: 2006-11-2 10:40
Quote: |
Originally posted by Jevin at 2006-11-2 10:20:
若不存在就查找与之文件名称匹配最近r的... |
|
在哪个文件夹下查找?backup下还是program下?
作者: Jevin
时间: 2006-11-2 10:48
Quote: |
Originally posted by namejm at 2006-11-2 10:40 AM:
在哪个文件夹下查找?backup下还是program下? |
|
在backup下查找
谢谢!
作者: namejm
时间: 2006-11-2 11:13
在2F的基础上扩充一下,暂未测试:
@echo off
:: 当文件名中含有多个点号的时候有可能无法准确找到近似的文件
for /f "delims=" %%i in ('dir /a-d /b d:\programr\test.txt') do set name=%%~ni&set postfix=%%~xi
if not exist "F\backup\%name%.%postfix%" (
for /f "delims=" %%i in ('dir /a-d /b F:\backup^|findstr /n ".*\%name%.*\.%postfix%$"') do copy "%%~dpnxi" d:\
)
[
Last edited by namejm on 2006-11-3 at 01:03 AM ]
作者: lxmxn
时间: 2006-11-2 12:25
Quote: |
Originally posted by namejm at 2006-11-2 11:13:
在2F的基础上扩充一下,暂未测试:
@echo off
:: 当文件名中含有多个点号的时候有可能无法准确找到近似的文件
for /f "delims=" %%i in ('dir /a-d /b d:\programr') do set name=%%~ni&set postfix=%%~xi
if not exist "F\backup\%name%.%postfix%" (
for /f "delims=" %%i in ('dir /a-d /b F:\backup^|findstr /n ".*\%name%.*\.%postfix%$"') do copy "%%~dpnxi" d:\
) |
|
@echo off
:: 当文件名中含有多个点号的时候有可能无法准确找到近似的文件
for /f "delims=" %%i in ('dir /a-d /b d:\programr\filename.exe') do set name=%%~ni&set postfix=%%~xi
if not exist "F\backup\%name%.%postfix%" (
for /f "delims=" %%i in ('dir /a-d /b F:\backup^|findstr /n ".*\%name%.*\.%postfix%$"') do copy "%%~dpnxi" d:\
)[/
作者: namejm
时间: 2006-11-3 01:03
呵呵,不好意思,漏了文件名和扩展名,我修改一下4F的代码。多谢lxmxn提醒。
————————————————————————————————————————
今天再看了一下3F的描述,发现似乎不存在漏掉文件名和扩展名的问题,或者说,无须指定文件名和扩展名,因为3F是这样说的:
先根据d:\programr下的一个文件名称(此文件夹下仅有一个文件)——
此文件夹指的究竟是d:\programr下的文件夹还是指 programr 这个文件夹本身?按照我的理解,我觉得应该是指 programr 文件夹本身,而它下面仅有一个文件,这个时候,不指定文件名和扩展名更具有通用性。
[
Last edited by namejm on 2006-11-4 at 01:09 AM ]
作者: Jevin
时间: 2006-11-4 23:20
呵呵,namejm理解很对,小弟没有表述清楚,见谅!
再次表述一下:先根据d:\program下的一个文件名称(program文件夹下仅有一个filename.exe执行文件),去查找服务器端(210.15.15.1)共享文件夹backup下的这个文件是否存在,若存在就直接运行d:\program下的这个exe文件,若不存在就查找与该文件名称匹配最近的那个文件,并将它拷贝到d:\program文件夹下面,同时删除旧的执行文件,运行这个新的执行文件.
文件名中都只含有一个点号的,访问服务器端user:administrator Password:111111
再次谢谢各位大侠们!;)
作者: lxmxn
时间: 2006-11-5 07:14
呵呵,看来 namejm 兄还蛮仔细的,3F的这点小"漏洞"都看出来了~~不过为了正确性,最好还是加上扩展名为好~~