找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23021|回复: 9

[文件操作] 批处理怎样删除子目录同名文件?

[复制链接]
发表于 2022-4-15 09:44:42 | 显示全部楼层 |阅读模式
指定一个文件夹

该文件夹,根目录有一个xlsx文件

1,获取名称

5-1案例4(注)_中文_2011年04月18日01时45分_中文_中文_663793_180403_298[忽略].xlsx

注:文件名称不确定
获取得到的名称:  5-1案例4(注)_中文_2011年04月18日01时45分_中文_中文_663793_180403_298[忽略].xlsx



2,查找多个子目录是否有相同的文件,如果有,仅删除"子目录"的相同文件. 注:子目录文件名称不确定
保留:根目录文件

补充说明了一下.
有朋友会弄吗
发表于 2022-4-15 10:35:51 | 显示全部楼层
回复 1# iii888iii

另存为ANSI编码的BAT文件,
放到要处理的文件夹的同一文件夹执行(不要放到目录里)

  
  1. #@&cls&powershell "gc '%~f0'|out-string|iex"&pause&exit

  2. $Folder = "B" #指定文件夹名
  3. $File = "5-1案例4(注)_中文_2011年04月18日01时45分_中文_中文_663793_180403_298[忽略].xlsx" #指定Xlsx文件名

  4. cd ".\$Folder"
  5. gci -Filter $File -rec | ? { $_.DirectoryName -ne $PWD } | del
复制代码
 楼主| 发表于 2022-4-15 10:43:56 | 显示全部楼层
回复 2# 5i365


  文件名是这个,可以删除,时间10多秒.

不过,   文件名,是不确定的,要获取...   文件夹名称也要获取.  是我没说清,

还是要说感谢.
发表于 2022-4-15 10:48:01 | 显示全部楼层
本帖最后由 5i365 于 2022-4-15 10:49 编辑

回复 3# iii888iii


   只有一个xlsx文件? 如果只有一个, 可以用下面的代码
发表于 2022-4-15 10:48:17 | 显示全部楼层
回复 3# iii888iii


  
  1. #@&cls&powershell "gc '%~f0'|out-string|iex"&pause&exit

  2. $Folder = "B" #指定文件夹名
  3. cd ".\$Folder"
  4. $File = (gi *.xlsx).Name
  5. gci -Filter $File -rec | ? { $_.DirectoryName -ne $PWD } | del
复制代码
发表于 2022-4-15 10:53:32 | 显示全部楼层
本帖最后由 5i365 于 2022-4-15 11:19 编辑

回复 3# iii888iii


文件夹如果也需要获取, 也获取xlsx, 把这个BAT放到要处理的文件夹里执行

  1. #@&cls&powershell "gc '%~f0'|out-string|iex"&pause&exit

  2. (gci '*.xlsx').name |
  3. %{
  4.         gci -Filter $_ -rec | ? { $_.DirectoryName -ne $PWD } | del
  5. }
复制代码

评分

参与人数 1技术 +1 收起 理由
iii888iii + 1 乐于助人

查看全部评分

发表于 2022-4-15 10:59:58 | 显示全部楼层
  1. @echo off
  2. cd "指定文件夹"
  3. for %%a in (*.xlsx) do (
  4.     for /d %%i in (*) do (
  5.         pushd "%%i"
  6.         for /f "delims=" %%j in ('dir /s /b /a-d "%%a"') do del "%%j"
  7.         popd
  8.     )
  9. )
  10. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
iii888iii + 1 乐于助人

查看全部评分

 楼主| 发表于 2022-4-15 11:11:38 | 显示全部楼层
感谢大家   2个代码都可以实现.   qixaobin0715  效率高,
发表于 2022-4-15 13:28:47 | 显示全部楼层
回复 7# qixiaobin0715
  1. @echo off
  2. cd /d "%~dp0"
  3. for %%a in (*.xlsx) do (
  4.     for /d %%i in (*) do (
  5.         del /s /f /q "%%i\%%a"
  6.     )
  7. )
复制代码
发表于 2022-4-15 13:54:47 | 显示全部楼层
回复 9# Batcher
del /s /f /q "%%i\%%a"
原来非完整路径也行啊!!!学到了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 03:08 , Processed in 0.012044 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表