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

[文本处理] 批处理如何搜索全盘某一个文件并替换?

已知文件为:U:\user\bak\keller.dll
要求全盘搜索并替换原来某盘的keller.dll

  1. for /f "delims=" %%a in ('dir u:\keller.dll /a /b /d /s') do (
  2. attrib -h -s -r "%%a"
  3. del /f /q "%%a"
  4. )
复制代码


很强大的删除批处理

[ 本帖最后由 rsent 于 2011-2-22 17:55 编辑 ]
1

评分人数

    • Batcher: 请编辑自己的帖子,把代码放到code标签里面 ...PB -2
宝贵的光阴,总是像箭一样地飞逝着。

TOP

1、如果keller.dll在很多文件夹里面都有,但只替换
"cdef"夹的keller.dll
又怎么判断?
2、假如"cdef"夹原来的keller.dll不存在,又怎么办?

TOP

有些不明白啊,即是全盘找,那为什么还给出了路径啊,描述清楚些,个人认为这个问题能用WMIC解决

[ 本帖最后由 wc726842270 于 2011-2-22 01:58 编辑 ]
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

第一:全盘搜索,就是不知道在那个文件夹,但是你又已知cdef文件夹,那么搜子文件夹就行,没必要搜索keller.dll吧? 如果是子文件夹,那么:
dir /s /b /a:d cdef
可以得到该文件夹位置,然后,是不是替换由你决定。

这个代码只会找到第一个子文件夹为cdef的路径。
  1. for %%i in (c d e f g h i j) do (
  2.        pushd %%i: ||goto :exit
  3.        for /f "delims=*" %%a in ('dir /s /b /a:d cdef') do (
  4.                    set "pth=%%a"
  5.                    goto :end
  6.        )
  7.        popd
  8. )
  9. :end
  10. copy U:\user\bak\keller.dll %pth%\keller.dll /y
  11. :exit
复制代码

TOP

谢谢大家. 现在我在试这边的 批处理如何将第一个的内容写入第二个文本?
http://bbs.bathome.net/viewthrea ... &extra=page%3D1 太晚了,明天试一下吧

TOP

回复 5楼 的帖子

这个可以,,只是搜索速度有点慢,不能自动转换新的完整路径.但可以在新的路径下任意操作.

TOP

返回列表