[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何全盘搜索相同名称的文件然后把文件移动到一个文件夹?

想做一个批处理给班级,因为老师U盘太多毒了,总是会让班级的电脑感染病毒。该批处理要像这样:

1,全盘搜索相同名字的可执行文件(没有特定名称,只要在不同的盘存在两个文件名称相同即可满足条件)
2,重命名病毒文件(改后缀)
3,接着全部都移动到一个指定的文件夹内。
4,最好操作可逆,若某个文件是正常文件可以恢复到原来的路径。
5,最好可以有一个枚举的形式。
有点思路但是不会写,今天写了一个结果把全部的exe全删除了,还好C盘有还原卡。才来求救。

本帖最后由 CrLf 于 2011-11-18 14:19 编辑

这事交给 xcopy 做吧
  1. @echo off
  2. set file=test.exe
  3. set folder=e:\test
  4. set dir=c d e f g h i j k l m n p q r s t u v w x y z
  5. for %%a in (%dir%) do if exist %%a:\nul xcopy /s /h /r /y "%%a:\%file:"=%" "%folder:"=%\%%a\"
复制代码

TOP

个人建议:用一下NTFS的磁盘“配额”限制一下,方法,百度一下吧。我说了也只会是蜻蜓点水,当然也可以权限
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

标题

回复 2# CrLf


谢谢你的回复,但是我指的同名文件是不特定的,是这样的,假如存在c:\windows\1.exe,D:\1.exe,E:\1\1.exe,就判定这个文件是病毒,然后将其后缀改为其他的,可以让用户后面去人工再次判定。

TOP

回复 3# wc726842270


    谢谢你的回复,但是那个盘是不能限额的,因为老师要保存课件。我看了很多批处理反病毒方面的,觉得有些是挺有创意的,但是实现起来很有难度。而且效率不高,例如我这种虽然也是效率不高,但是还是可以凑合用吧。期待可以实现。

TOP

如果你确定u盘里有用的东西,那么你可以排除下,将不符合要求的都del
Anything is possible!!!Ze

TOP

论坛有现成的U盘杀毒,如果无法预料后果请不要随便使用。同名也不难,使用查找重复文件的模式——for
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

标题

本帖最后由 BillGates 于 2011-11-18 20:24 编辑

回复 6# 〃十月丶


    这个我会,但是呢,班级电脑有还原卡,程序不能常驻,还有就是我不能每次都去进行这个操作。我要的是在病毒感染后清除病毒体。反正C盘会被还原。不知有没更好的建议。

TOP

标题

回复 7# cjiabing


    主要是我不知道两个功能怎么衔接呀。U盘杀毒不是我想要的,因为老师的U盘我不可能总是去操作,我只是想清除掉病毒体。C盘会被还原,病毒的机制就失效了,清除病毒体就可以避免其他人错误点击,导致重复感染。谢谢。

TOP

回复 9# BillGates


    还不是一个鬼样?你的目的是清除病毒,避免误点而导致的重复感染。假如批处理能做到的,杀毒软件不是更加能做到?你想要小一点的就拿usbcleaner,或者论坛里的USBkill……
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

本帖最后由 CrLf 于 2011-11-20 20:35 编辑

回复 4# BillGates


    这个好办,可是很容易误杀的,你确定要这样?
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%a:\nul set dir=!dir! %%a:\
  3. endlocal&set dir=%dir%
  4. (for /f "delims=" %%a in ('dir /s /b /a-d %dir:\=\*.exe %') do echo %%~da%%~na)>tmp
  5. (for /f "tokens=1* delims=\" %%a in ('sort tmp') do (
  6.    set now=%%a
  7.    setlocal enabledelayedexpansion
  8.    if !last!==!now! del /s /q /f /a  !dir:\=\%%~nxa!
  9.    endlocal
  10.    set last=%%a
  11. ))2>nul
  12. del tmp
复制代码
不过这种方法没有办法备份...

TOP

回复 10# cjiabing


    可是我教室的杀软是瑞星2007的,U盘全是exe都不报毒,无奈,而且,那个软件是卸载不了的,因为还原卡的缘故,要是可以用杀软我早都用了。并且,我想的是杀掉D E盘的病毒体。实质是不会自动运行,不会主动繁衍的可执行文件啦,而要是别人点击了它,还是会感染其他的。而那个U盘杀毒的,不是只能针对U盘的东西吗?我不想用软件啦,想用批处理简单的清扫一下病毒的残兵败将而已。

TOP

回复 12# BillGates


    瑞星 2007...看到瑞星我就郁闷了,看到 2007 更郁闷了

TOP

回复 11# CrLf


    没备份没关系的,只要能把它们集中在一个文件夹就好了。我想研究研究它们,谢谢你。

TOP

回复 13# CrLf


    我也很郁闷,看着U盘插入后,病毒还是大行其道,实是无奈啊。不过还好有还原卡,重启后他们都是浮云。就是个尸体罢了。不过数量很多。每个文件夹都有,名字都相同,不是那种依照文件夹名的。更加弱智。用你那个,在结合同文件名查杀,那就可以收拾尸体了。

TOP

返回列表