标题: [文件操作] 如何搜指定文件夹的指定文件,并复制到桌面改名? [打印本页]
作者: yimi300 时间: 2008-3-22 16:44 标题: 如何搜指定文件夹的指定文件,并复制到桌面改名?
以前我做网吧维护,我就经常用到一些批处理,这给我的日常维护带来了很大的方便~
但我也只是知道一些简单的DOS命令,遇到复杂的操作还得上网来求助,
今天偶然发现这个论坛,真是不错,我要好好学习一下批处理,
以前以为批处理只是一个DOS命令的小集合,但看了论坛上的几篇帖之后,发现这东西不次于编程~
但学习有一个阶段,现手头有一急用,求哪位高手帮我一下~
求:
在电脑搜索指定名称目录(可能是多个),
找到指定目录后,搜索指定名称文件(可能是多个),
搜索到指定文件后复制到系统桌面,
并改名(因为是同名文件,只有改名),
最后结果是桌面上有多个"1","2","3"......的文件
我想,要凭我的能力学出来这套东西,得几天之后了,所以请高手先帮我搞定,谢谢啦~
[ 本帖最后由 yimi300 于 2008-3-22 20:20 编辑 ]
作者: 随风 时间: 2008-3-22 17:16
首先,欢迎新会员的加入。
同时也有几点建议:
1、标题一定要与主题内容相关,具体要求以在顶楼给出链接。
2、你的问题,批处理能做到。
你所说的多个目录和文件,是事先排列在某个txt文件里的么?还是运行批处理时临时输入?
这种情况最好能一次性把条件说清楚。如果可能最好能给出部分样本文件。
3、请尽快修改标题及完善你的提问。
.....
[ 本帖最后由 随风 于 2008-3-22 17:22 编辑 ]
作者: yimi300 时间: 2008-3-22 20:29
用一个批处理文件最好~自己在批处理修改就行了,比如在批处理用(*******)代替,
我只是搜索一个文件名,但这个文件可能有多个!
类似于U盘病毒的文件!
举例,我要搜索到所有分区里的TEMP文件夹里面123.exe,并改名复制到桌面,而TEMP文件夹之外的123.exe我不要!
可能我的电脑里有几十个叫TEMP的文件夹里含有123.exe,我要分别把他们都找到并复制到桌面上,供我研究!
作者: 随风 时间: 2008-3-22 21:34
:- @echo off
- :: 设置文件名
- set "wjm=123.exe"
- ::设置目录名
- set "ml=temp"
- for %%a in (c d e f g h) do (
- cd/d %%a:
- for /r %%i in (%ml%) do (
- if exist "%%i" (
- if exist "%%i\%wjm%" call :loop "%%i\%wjm%"
- )))
- pause&exit
- :loop
- set /a max+=1
- if exist "%userprofile%\桌面\%max%.exe" goto loop
- copy /y "%~1" "%userprofile%\桌面\%max%.exe"
- goto :eof
复制代码
[ 本帖最后由 随风 于 2008-3-22 21:37 编辑 ]
作者: foxJL 时间: 2008-3-22 22:04
- @echo off
- ::在每一分区根目录下运行,文件会移动到当前根目录下的[123]文件夹内。
- setlocal enabledelayedexpansion
- set fname=123.exe
- set list=temp
- md %~d0\123>nul 2>nul
- for /f %%i in ('dir /s /b %fname%') do (
- set fd=%%~pi
- set fd=!fd: =:!
- set fd=!fd:\= !
- for %%j in (!fd!) do (set fd=%%j)
- set fd=!fd::= !
- if "!fd!"=="%list%" (
- set /a n+=1
- move "%%i" %~d0\123\
- ren "%~d0\123\%fname%" "!n!%fname%"
- )
- )
- pause
复制代码
[ 本帖最后由 foxJL 于 2008-3-22 22:07 编辑 ]
作者: 希望的寄托 时间: 2008-3-23 09:57
呵呵呵,学习了,正好我以前也是做维护的,这下又学到了巡查和版主的知识
作者: 希望的寄托 时间: 2008-3-23 10:12
老大出现了五个同样的图标在administrator的桌面上
作者: yimi300 时间: 2008-3-24 14:22
哇,巡查真棒,在我头脑里没有一点头绪的事,竟然这么简单就搞定啦?太神奇啦,学习代码中.....
版主提供的是另一种方式,虽然不是我想用的,但在某种情况下,用来处理木马病毒还是非常有用的,先收藏中.....
顺便请教下,如下这些红色的命令及函数,在哪里能查到?
我只知其中一些常用的,还有很多都没见过,在哪有那种例表什么的,什么查?
我在置顶的帖里看到有个代码大全,进去看了也不是我说那种啊~
@echo off
:: 设置文件名
set "wjm=123.exe"
::设置目录名
set "ml=TEMP"
for %%a in (c d e f g h) do (
cd/d %%a:
for /r %%i in (%ml%) do (
if exist "%%i" (
if exist "%%i\%wjm%" call :loop "%%i\%wjm%"
)))
pause&exit
:loop
set /a max+=1
if exist "%userprofile%\桌面\%max%.exe" goto loop
copy /y "%~1" "%userprofile%\桌面\%max%.exe"
goto :eof
作者: 随风 时间: 2008-3-24 14:58
你是说cmd的基本命令吗?
运行下面的代码
具体命令的帮助运行 命令/?
:复制代码
作者: yimi300 时间: 2008-3-24 16:37
原帖由 随风 于 2008-3-24 14:58 发表
你是说cmd的基本命令吗?
运行下面的代码
具体命令的帮助运行 命令/?
echo off
help
pause
哦,谢谢,
我忘了DOS里自带的帮助命令了,呵呵~
再请教一下,像你帮我弄的那个代码,其中关于搜索的命令太复杂,看的我头晕了,
可能是我用的功能多了,所以乱了,
如果我不查找指定目录,只查找指定文件呢?怎么修改?
这样代码就应该易懂了吧~
作者: bless 时间: 2008-9-4 17:29
学到很多呀,多谢各位的讨论。
作者: wwjpl 时间: 2008-9-10 20:30
今天刚注册,就看到了几位大大的回帖,受教了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |