无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 293|回复: 10
打印 上一主题 下一主题

有请批处理大佬

[复制链接]
跳转到指定楼层
1#
发表于 昨天 17:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我写个批处理删除C盘除了C:\Windows C:\Program Files (x86) C:\Program Files C:\ProgramData这4个文件夹以外其它所有文件夹的*.xls *.xlsm *.xlsx *.xlsb这4种文件,要注意的是排除的4个夹是包含空格的请用引号,这个用gpt4写了一下午,期间改了好多次就是没一次能实现效果的
2#
发表于 昨天 18:47 | 只看该作者
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set dirs=
  4. for /f "tokens=*" %%i in ('dir /ad /b C:\') do (
  5.     set flag=0
  6.     if "%%~i"=="Windows" set flag=1
  7.     if "%%~i"=="Program Files (x86)" set flag=1
  8.     if "%%~i"=="Program Files" set flag=1
  9.     if "%%~i"=="ProgramData" set flag=1
  10.     if "!flag!"=="0" set "dirs=!dirs! "C:\%%i\*.xls" "C:\%%i\*.xlsm" "C:\%%i\*.xlsx" "C:\%%i\*.xlsb""
  11. )
  12. for /f "tokens=*" %%i in ('dir /a-d /s /b %dirs%') do (
  13.     ::echo %%i
  14.     del /f /a /q "%%~i"
  15. )
复制代码

点评

助人为乐  详情 回复 发表于 昨天 18:59

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5

查看全部评分

回复

使用道具 举报

3#
发表于 昨天 18:59 | 只看该作者
回复

使用道具 举报

4#
发表于 昨天 19:22 | 只看该作者
论坛的大佬比GPT4厉害!
回复

使用道具 举报

5#
发表于 昨天 19:36 | 只看该作者
用 Robocopy.exe 可以轻松实现.
Robocopy.exe /? 琢磨琢磨.
回复

使用道具 举报

6#
发表于 昨天 19:38 来自手机 | 只看该作者
那四个里有可能有这四种文件吗吗?你这要求就有点说不来的感觉。
回复

使用道具 举报

7#
发表于 昨天 19:39 | 只看该作者
感谢分享
回复

使用道具 举报

8#
发表于 昨天 20:14 | 只看该作者
还可以提要求吗
回复

使用道具 举报

9#
发表于 昨天 21:12 | 只看该作者
  1. @echo off
  2. for /f "delims=" %%i in ('dir C: /a:d /b') do if "%%~i" neq "Program Files" if "%%~i" neq "Program Files (x86)" if "%%~i" neq "ProgramData" if "%%~i" neq "Windows" cd /d "C:\%%~i" 2>nul&for /f "delims=" %%j in ('dir /a-d /s /b "*.xls" "*.xlsm" "*.xlsx" "*.xlsb" 2^>nul') do echo "%%~j"&del /f /q "%%~j"
复制代码
管理员权限执行
回复

使用道具 举报

10#
发表于 昨天 21:27 | 只看该作者
  1. 要编写一个批处理脚本来删除C盘中除了指定的四个文件夹以外的所有`.xls`、`.xlsm`、`.xlsx`和`.xlsb`文件,首先,我们需要确保:

  2. 1. 排除的四个文件夹:`C:\Windows`、`C:\Program Files (x86)`、`C:\Program Files`、`C:\ProgramData`;
  3. 2. 只删除C盘根目录下其他文件夹中的目标文件类型;
  4. 3. 正确处理文件夹和路径中有空格的情况。

  5. 可以使用`for /d`和`del`命令来遍历和删除文件。以下是一个简单的批处理脚本实现:

  6. ```batch
  7. @echo off
  8. setlocal

  9. :: 设置排除的文件夹路径
  10. set exclude1="C:\Windows"
  11. set exclude2="C:\Program Files (x86)"
  12. set exclude3="C:\Program Files"
  13. set exclude4="C:\ProgramData"

  14. :: 遍历 C 盘上的所有文件夹
  15. for /d %%F in (C:\*) do (
  16.     if /i not "%%F"==%exclude1% (
  17.         if /i not "%%F"==%exclude2% (
  18.             if /i not "%%F"==%exclude3% (
  19.                 if /i not "%%F"==%exclude4% (
  20.                     :: 删除该文件夹内的目标文件
  21.                     del /q "%%F\*.xls" "%%F\*.xlsm" "%%F\*.xlsx" "%%F\*.xlsb" 2>nul
  22.                 )
  23.             )
  24.         )
  25.     )
  26. )

  27. echo 删除完成
  28. endlocal
  29. pause
  30. ```

  31. ### 说明:
  32. 1. **排除文件夹:** 我们使用 `if /i not "%%F"==%excludeX%` 来检查每个文件夹是否是要排除的文件夹,`/i` 参数确保忽略大小写。
  33. 2. **删除操作:** `del /q "%%F\*.ext"` 用来删除每个文件夹中的`.xls`、`.xlsm`、`.xlsx`和`.xlsb`文件。`2>nul` 用于将删除过程中的错误(如文件夹中没有符合条件的文件)输出重定向到空设备,以避免显示错误消息。
  34. 3. **批处理命令 `pause`**:用来在批处理脚本结束时暂停,方便你查看是否有任何错误消息。

  35. ### 使用方法:
  36. 1. 将此批处理脚本保存为 `.bat` 文件。
  37. 2. 以管理员身份运行批处理脚本,以确保有权限删除文件。

  38. ### 注意:
  39. - 请在使用此脚本前,**备份重要数据**,以免误删重要文件。
  40. - 如果脚本运行时没有删除所有的目标文件,可能是因为没有对某些文件夹有权限,或者文件夹中没有符合条件的文件。

  41. 希望这个脚本能够帮助你完成任务!
复制代码
回复

使用道具 举报

11#
发表于 昨天 23:53 | 只看该作者
AI
  1. $excludedFolders = "C:\Windows*","C:\Program Files (x86)*","C:\Program Files*","C:\ProgramData*"
  2. $folders = Get-ChildItem -Path C:\ -Directory -ErrorAction SilentlyContinue | Where-Object {$_.FullName -notmatch ($excludedFolders -join "|")}

  3. $excelFiles = foreach ($folder in $folders) {
  4.     Get-ChildItem -Path $folder.FullName -Include *.xls,*.xlsm,*.xlsx,*.xlsb -ErrorAction SilentlyContinue
  5. }

  6. # 输出结果
  7. if ($excelFiles) {
  8.     $excelFiles | Select-Object FullName
  9. } else {
  10.     Write-Host "未找到任何Excel文件。"
  11. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-1-11 02:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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