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

【已解决】批处理怎样全盘查找一个文件并用另外一个文件替换?

本帖最后由 wlishihua 于 2021-8-10 04:41 编辑

全盘查找一个文件,找到后用另外一个文件替换
比如说,在电脑里有一个文件叫XXX.WIM,但不知道在哪个分区里。  找到 后我用另一个XXX.WIM 自动替换
而且这个文件带有只读、隐藏属性,就是说有 +s +a +h +r属性
贴上代码
@echo off
color 1f
mode con:cols=60 lines=10
title              替换Winre.wim  开机按F8进入PE
echo.
set "FileName=Winre.wim"
set "FileName1=boot.wim"
echo                  正在执行命令,请稍候......
for %%a in (C ) do (
    if exist %%a:\ (
        for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
            if /i "%%~nxb" equ "%FileName%" (
              
for %%a in (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:\ (
        for /f "delims=" %%j in ('dir /a-d /s /b "%%a:\*%FileName1%" 2^>nul') do (
            if /i "%%~nxj" equ "%FileName1%" (
           attrib -s -a -h -r "%%b"
           copy /y "%%j" "%%b" /z
          attrib +s +a +h +r "%%b"
            )
        )
    )
)
            )
        )
    )
)

TOP

回复 1# wlishihua


试试哪个代码能找到:批处理全盘搜索指定文件获取其完整路径
http://bbs.bathome.net/thread-3465-1-1.html
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

这个能搜索到文件,但是搜索到 了要用批处理目录的同名文件替换搜索到 的文件,怎么继续?
@echo off
rem 指定待搜索的文件
set "FileName=Winre.wim"
echo 正在搜索,请稍候...
for %%a in (C ) do (
    if exist %%a:\ (
        for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
            if /i "%%~nxb" equ "%FileName%" (
                echo,%%b
            )
        )
    )
)

TOP

回复 3# wlishihua


echo,%%b
改成:
copy /y "%~dp0%FileName%" "%%~dpb"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

SetLocal EnableDelayedExpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && for /f "delims=" %%a in ('dir/s/a-d/b !drive!\Winre.wim 2^>nul') do copy /y "Winre.wim" "%%~dpa")

已解决,但是不知道“固定”是啥意思

TOP

本帖最后由 newswan 于 2021-8-7 21:51 编辑

固定驱动器,也就是硬盘
还有移动磁盘 网络磁盘 光盘等
1

评分人数

TOP

回复 4# Batcher
全部代码如下
@echo off
mode con:cols=90 lines=6
title  替换Windows 7 系统 的Winre.wim  开机按F8进入PE,前提是C盘要有Recovery文件夹下面有Winre.wim
rem 搜索文件并安装
set "FileName=Winre.wim"
set "FileName1=boot.wim"
echo 正在搜索,请稍候...
for %%a in (C k j u z i  h g f e d ) do (
    if exist %%a:\ (
        for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
            if /i "%%~nxb" equ "%FileName%" (
                copy /y "%~dp0%FileName1%" "%%~dpb"Winre.wim /y
            )
        )
    )
)

"%~dp0%FileName1%"这段命令是在同批处理同一目录下的boot.wim文件,而我想达到的目的是全盘下的boot.wim,找到一个就复制这一个

TOP

[系统相关] 批处理怎样全盘查找一个文件并用另外一个文件替换?

  1. @echo off
  2. mode con:cols=90 lines=6
  3. title  替换Windows 7 系统 的Winre.wim  开机按F8进入PE,前提是C盘要有Recovery文件夹下面有Winre.wim
  4. rem 搜索文件并安装
  5. set "FileName=Winre.wim"
  6. set "FileName1=boot.wim"
  7. echo 正在搜索,请稍候...
  8. for %%a in (C k j u z i  h g f e d ) do (
  9.     if exist %%a:\ (
  10.         for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
  11.             if /i "%%~nxb" equ "%FileName%" (
  12.                 copy /y "%~dp0%FileName1%" "%%~dpb"Winre.wim /y
  13.             )
  14.         )
  15.     )
  16. )
复制代码
"%~dp0%FileName1%"这段命令是在同批处理同一目录下的boot.wim文件,而我想达到的目的是全盘下的boot.wim,找到一个就复制这一个

踩!好吧,

TOP

回复 2# sa5822054

不明白,睬是什么?

TOP

本帖最后由 gcbgczhang 于 2021-8-9 13:09 编辑

你是要找到了改名?还是要用一个文件去替换内容?

TOP

回复 4# gcbgczhang

找到 Winre.wim   再全盘查找boot.wim改名为Winre.wim  替换(Winre.wim)它

TOP

多套一层?
  1. @echo off
  2. mode con:cols=90 lines=6
  3. title  替换Windows 7 系统 的Winre.wim  开机按F8进入PE,前提是C盘要有Recovery文件夹下面有Winre.wim
  4. rem 搜索文件并安装
  5. set "FileName=Winre.wim"
  6. set "FileName1=boot.wim"
  7. echo 正在搜索,请稍候...
  8. for %%a in (C k j u z i  h g f e d ) do (
  9.     if exist %%a:\ (
  10.         for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
  11.             if /i "%%~nxb" equ "%FileName%" (
  12. for %%i in (C k j u z i  h g f e d ) do (
  13.     if exist %%i:\ (
  14.         for /f "delims=" %%j in ('dir /a-d /s /b "%%a:\*%FileName1%" 2^>nul') do (
  15.             if /i "%%~nxj" equ "%FileName1%" (
  16.                 copy /y "%%j" "%%b"
  17.             )
  18.         )
  19.     )
  20. )
  21.             )
  22.         )
  23.     )
  24. )
复制代码
1

评分人数

TOP

本帖最后由 wlishihua 于 2021-8-9 17:56 编辑

回复 6# idwma

还是不行,第一个都没搜索到

TOP

回复 7# wlishihua


    这个代码实现的功能和3楼描述的需求有哪些差异吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表