复制代码
- @echo off
- setlocal
- set /p "A_dir=A目录路径: "
- set /p "B_dir=B目录路径: "
- echo.
- echo 删除清单如下:
- echo.
- for /r "%A_dir%" %%F in (*) do (
- set "file=%%~nxF"
- if exist "%B_dir%\!file!" (
- echo %B_dir%\!file!
- )
- )
- echo.
- set /p "confirm=请确认是否删除以上文件 (Y/N): "
- if /i "%confirm%"=="Y" (
- echo 正在删除文件...
- for /r "%A_dir%" %%F in (*) do (
- set "file=%%~nxF"
- if exist "%B_dir%\!file!" (
- del "%B_dir%\!file!"
- )
- )
- echo.
- echo 删除完成。
- ) else (
- echo 操作已取消。
- )
- endlocal
复制代码
- @echo off
- set "A_dir=A"
- set "B_dir=B"
- dir /b "%A_dir%" >ta.$
- dir /b "%B_dir%">tb.$
- for /f "delims=" %%i in ('findstr /ixg:tb.$ ta.$') do (
- if exist t?.$ del t?.$
- del "%B_dir%\ %%i"
- )
- pause
复制代码
- setlocal
- endlocal
复制代码
- @echo off
- set a=D:\a\
- set b=D:\a\b\
- rem 去掉末尾\
- for %%a in ("%b%\.") do set b=%%~fa
- for /r "%a%" /d %%d in (*) do (
- if /i "%%d" equ "%b%" (
- for %%a in ("%a%\*") do (
- if exist "%b%\%%~nxa" (
- if not exist "%b%\%%~nxa\" (
- echo del "%b%\%%~nxa"
- )
- )
- )
- )
- )
- pause
复制代码
- for /r "%A_dir%" %%F in (*) do (
- for %%a in ("%%~nxF") do (
- if exist "%B_dir%\%%~nxa" (
- echo "%B_dir%\%%~nxa"
- )
- )
- )
以下是一个Windows平台下的批处理脚本,用于删除B目录中存在的与A目录相同文件名的文件:
复制代码
- @echo off
- set "srcDir=A"
- set "dstDir=B"
- for %%F in ("%srcDir%\*") do (
- if exist "%dstDir%\%%~nxF" (
- del "%dstDir%\%%~nxF"
- echo Deleted file: %%~nxF
- )
- )
- pause
请将脚本保存为.bat文件,并将A和B目录的路径替换为实际的目录。这个脚本会遍历A目录中的文件,在B目录中查找是否存在相同文件名的文件,如果存在则删除B目录中的该文件,并输出删除的文件名。最后的pause命令是为了使脚本执行完成后暂停,以便您查看输出结果。
欢迎光临 批处理之家 (http://www.bathome.net/) | Powered by Discuz! 7.2 |