[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

指定一个文件夹

该文件夹,根目录有一个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,查找多个子目录是否有相同的文件,如果有,仅删除"子目录"的相同文件. 注:子目录文件名称不确定
保留:根目录文件

补充说明了一下.
有朋友会弄吗

回复 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
复制代码
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

回复 2# 5i365


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

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

还是要说感谢.

TOP

本帖最后由 5i365 于 2022-4-15 10:49 编辑

回复 3# iii888iii


   只有一个xlsx文件? 如果只有一个, 可以用下面的代码
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

回复 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
复制代码
本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

本帖最后由 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

评分人数

本人所发所有贴子或代码, 诸大侠若认为有改进之处,请不吝赐教,感激不尽!

TOP

  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

评分人数

TOP

感谢大家   2个代码都可以实现.   qixaobin0715  效率高,

TOP

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher
del /s /f /q "%%i\%%a"
原来非完整路径也行啊!!!学到了。

TOP

返回列表