批处理 全盘查找文件并拷贝覆盖文件
发布网友
发布时间:2022-05-29 06:15
我来回答
共4个回答
热心网友
时间:2023-10-09 07:37
楼上的测试 结果并未成功
试试这个
批处理作业说明:
程序找到 user.dat
后 即用程序目录下的user.dat 进行覆盖
程序找到\abc\abc.txt 后进行覆盖 ABC.TXT 如果不在ABC 文件夹下则不进行覆盖
@echo off
::记住单前路径
set aa=%cd%
::所有盘符走一遍
for %%b 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 (
cd /d %%b:\
echo %cd%
::遍历磁盘查找user.dat文件
for /f "delims=" %%c in ('dir /s /b user.dat') do (
::找到USER.DAT 后进行替换
copy "%aa%\user.dat" "%%c" /y
)
::遍历磁盘查找abc.txt文件 并判断 路径里是否含有 \abc\abc.txt
for /f "delims=" %%c in ('dir /s /b "abc.txt"^|find /i "\abc\abc.txt"') do (
::找到\ABC\ABC.TXT 后进行替换
copy "%aa%\abc.txt" "%%c" /y
)
)
exit
希望我的回答对你有用
热心网友
时间:2023-10-09 07:38
@echo off
title 文件批量替换
color 5c
mode con cols=40lines=5
:ks
cls
set wj1 = :
set /p wj1=用来替换的文件:
if %wj1% ==: goto:ks
set wj2 = :
set /p wj2=要替换的文件:
if %wj2% ==: goto:ks
cls
set lj = :
set /p lj=文件所在路径:
if %lj% ==: goto:ks
for /f "delims=*" %%m in (' dir /b /s %lj%\%wj2% ') do attrib -r -a -s -h %%m & cls
上面两行是一行的
for /f "delims=*" %%m in (' dir /b /s %lj%\%wj2% ') do copy %wj1% %wj2% /y & cls
上面两行是一行的
exit
自己举一反三修改下,建议多到dos联盟论坛去看看。
热心网友
时间:2023-10-09 07:38
@echo off
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 (for /r %%a:\ %%i in (abc.txt) do copy abc.txt "%%i")
if exist %%a:\nul (for /r %%a:\ %%i in (user.dat) do copy user.dat "%%i")
)
pause>nul
热心网友
时间:2023-10-09 07:39
@ECHO OFF
FOR %%I IN (A B 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 %%I:\* (
CD /D %%I:
FOR /F "DELIMS=" %%A IN ('DIR /S/B abc.txt user.dat^|FIND "abc"') DO (
IF /I "%%~XA"==".TXT" MOVE "%~DP0.\abc.txt" "%%A"
IF /I "%%~XA"==".DAT" MOVE "%~DP0.\user.dat" "%%A"
)
)
)
EXIT