标题: [文件操作] 批处理如何查找大小为0的文件并替换? [打印本页]
作者: ww0000 时间: 2022-1-19 10:15 标题: 批处理如何查找大小为0的文件并替换?
我有两个U盘A和B,其中一个U盘A当时拷进去很多大小为0的文件,现在想用批处理找出来,并用另一个U盘B里面的同名文件、并且大小不是0的文件替换(包含子目录),谢谢
作者: Batcher 时间: 2022-1-19 13:21
回复 1# ww0000 - @echo off
- REM 指定U盘A的所在的盘符
- set "U_A=X:"
- REM 指定U盘B的所在的盘符
- set "U_B=Y:"
-
- if not exist "%U_A%\" (
- echo 不存在 %U_A%
- goto :End
- )
- if not exist "%U_B%\" (
- echo 不存在 %U_B%
- goto :End
- )
- for /f "delims=" %%i in ('dir /b /s /a-d "%U_A%"') do (
- if %%~zi equ 0 (
- if exist "%U_B%%%~pnxi" (
- copy /y "%U_B%%%~pnxi" "%%~dpi"
- )
- )
- )
-
- :End
- pause
复制代码
作者: ww0000 时间: 2022-1-20 17:34
回复 2# Batcher
谢谢老师,晚上我测试一下!
另外,如果我想把大的文件覆盖小的,或者是新的覆盖旧的,代码怎么改呢?
作者: ww0000 时间: 2022-1-20 17:40
回复 2# Batcher
REM 指定U盘A的所在的盘符
老师,这里怎么改呀?
作者: Batcher 时间: 2022-1-20 19:16
回复 4# ww0000
你把两个U盘同时插到电脑上之后看看盘符分别是什么,修改第3行和第5行。
作者: ww0000 时间: 2022-1-20 20:58
回复 5# Batcher
比如说我的U盘是K:/
第三行 set "U_A=X:" 修改成 set "K:/ " ?
作者: Batcher 时间: 2022-1-20 20:59
回复 6# ww0000
set "U_A=K:"
作者: ww0000 时间: 2022-1-25 14:46
回复 7# Batcher
老师,我在一个盘里的两个文件夹试验,文件夹1的文件是有内容的,文件夹2的文件是空的,试了不成功
@echo off
REM 指定U盘A的所在的盘符
set "U_A=k:/1"
REM 指定U盘B的所在的盘符
set "U_B=k:/2"
if not exist "%U_A%\" (
echo 不存在 %U_A%
goto :End
)
if not exist "%U_B%\" (
echo 不存在 %U_B%
goto :End
)
for /f "delims=" %%i in ('dir /b /s /a-d "%U_A%"') do (
if %%~zi equ 0 (
if exist "%U_B%%%~pnxi" (
copy /y "%U_B%%%~pnxi" "%%~dpi"
)
)
)
:End
pause
作者: Batcher 时间: 2022-1-25 15:59
回复 8# ww0000
因为这个代码最初的编写思路是为了满足顶楼要求的【两个U盘A和B】,而不是现在你尝试的【一个U盘下的两个文件夹】
作者: Batcher 时间: 2022-1-25 16:10
回复 8# ww0000 - @echo off
- REM 指定第1个文件夹(包含空文件)的路径
- set "U_A=K:\1"
- REM 指定第2个文件夹(不包含空文件)的路径
- set "U_B=K:\2"
-
- setlocal enabledelayedexpansion
- if not exist "%U_A%\" (
- echo 不存在 %U_A%
- goto :End
- )
- if not exist "%U_B%\" (
- echo 不存在 %U_B%
- goto :End
- )
- for /f "delims=" %%i in ('dir /b /s /a-d "%U_A%"') do (
- if %%~zi equ 0 (
- set "FileA=%%i"
- set "FileB=!FileA:%U_A%=%U_B%!"
- if exist "!FileB!" (
- copy /y "!FileB!" "%%~dpi"
- )
- )
- )
-
- :End
- pause
复制代码
作者: ww0000 时间: 2022-1-26 11:32
回复 10# Batcher
老师,测试不成功
作者: Batcher 时间: 2022-1-26 16:41
回复 11# ww0000
建议以后不要再说“不行”、“一闪而过”、“没有反应”之类的话,因为这对于想要给你进一步帮助的人来说没有任何意义。希望大家都能学会的一个知识点是:如何查看代码的报错信息。
请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: ww0000 时间: 2022-1-28 14:30
回复 12# Batcher
只提示“请按任意键继续”,按了就没了
作者: Batcher 时间: 2022-1-28 17:17
回复 13# ww0000
请按照12楼链接里面的方法操作,截图发出来看看。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |