[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 77七 于 2023-11-6 21:44 编辑
  1. setlocal
  2. endlocal
复制代码

这个是区域变量,没有开启变量延迟扩展
顶楼代码没有判断b是否存在于a吧


  1. @echo off
  2. set a=D:\a\
  3. set b=D:\a\b\
  4. rem 去掉末尾\
  5. for %%a in ("%b%\.") do set b=%%~fa
  6. for /r "%a%" /d %%d in (*) do (
  7. if /i "%%d" equ "%b%" (
  8. for %%a in ("%a%\*") do (
  9. if exist "%b%\%%~nxa" (
  10. if not exist "%b%\%%~nxa\" (
  11. echo del "%b%\%%~nxa"
  12. )
  13. )
  14. )
  15. )
  16. )
  17. pause
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 77七 于 2023-11-7 00:56 编辑

回复 8# thp2008




提问ai,需要准确描述问题

windows平台,如果A、B两个目录下存在文件名相同的文件,则删除B目录下的该文件,请写出批处理脚本

以下是一个Windows平台下的批处理脚本,用于删除B目录中存在的与A目录相同文件名的文件:


复制代码


  1. @echo off
  2. set "srcDir=A"
  3. set "dstDir=B"
  4. for %%F in ("%srcDir%\*") do (
  5.     if exist "%dstDir%\%%~nxF" (
  6.         del "%dstDir%\%%~nxF"
  7.         echo Deleted file: %%~nxF
  8.     )
  9. )
  10. pause
复制代码


请将脚本保存为.bat文件,并将A和B目录的路径替换为实际的目录。这个脚本会遍历A目录中的文件,在B目录中查找是否存在相同文件名的文件,如果存在则删除B目录中的该文件,并输出删除的文件名。最后的pause命令是为了使脚本执行完成后暂停,以便您查看输出结果。

1

评分人数

bat小白,请多指教!谢谢!

TOP

返回列表