给AI讲的批处理要求 和处理过程 如下:Windows系统下, 对路径D:\ccshs\hsh下的所有文件和文件夹及子文件夹下的文件名进行操作,1、凡是文件名带有字符串“fxh.com”的其文件名中“fxh.com”删除掉,保留文件及文件夹其他字符不变;2、对路径D:\ccshs\hsh下的子文件夹下的文件大小进行判断,如果文件大小 小于50MB,不进行任何操作,如果大于50MB,记整数型数值i=1;继续对下一个文件大小进行判断,如果文件大小还是小于50MB不进行任何操作,如果大于50MB,i增加1 i=i+1;直至该子文件夹下文件全部判断完毕为止;3、如果该子文件下文件大小大于50MB的数值不等于1,不对该子文件下文件及文件夹进行任何操作;如果该子文件下文件大小大于50MB的数值等于1,判断那个文件大小大于50MB的文件文件名称是否以英文字母开头,如果是,不进行任何操作;如果文件名不是以英文字母开头而是以中文汉字字符开头的,判断改文件名中序列号字符串,所谓序列号字符串是指文件名中第一个英文字母开头向右到下一个汉字字符终止的由英文字符和连接符"-"和阿拉伯数字组成字符串,并把序列号字符串剪切粘贴到该文件名开头处,然后把该文件所在的文件夹名称改为与该文件名称一样的字符,文件夹名称中不要带文件的扩展名,继续对下一个子文件夹进行操作。AI给的代码:- @echo off
-
- setlocal enabledelayedexpansion
-
- set "startFolder=D:\ccshs\hsh"
-
- set "count=0"
-
- set "i=0"
-
- rem 遍历文件夹中的所有文件和子文件夹
-
- for /R "%startFolder%" %%F in (*) do (
-
- rem 判断文件名是否包含字符串 "fxh.com"
-
- if "%%F"=="*fxh.com*" (
-
- rem 删除文件名中的 "fxh.com" 字符串
-
- ren "%%F" "!F:fxh.com=!"
-
- )
-
- rem 判断文件大小是否大于50MB
-
- if %%~zF GTR 524288000 (
-
- set /a "count+=1, i+=1"
-
- rem 检查i的值是否为1
-
- if !i! lss 1 (
-
- goto continue
-
- )
-
- rem 检查文件名的开头是否为英文字母
-
- for /f "tokens=1 delims=*" %%A in ("%%~nxF") do (
-
- set "filename=%%A"
-
- set "extension=%%B"
-
- set "firstChar=1"
-
- for /L %%i in (2,1,99) do (
-
- set "char=!filename:~%%i,1!"
-
- if not "!char!" lss "A" set "firstChar=0"
-
- if not "!char!" gtr "z" set "firstChar=0"
-
- )
-
- if !firstChar! equ 0 goto continue
-
- )
-
- rem 获取序列号字符串并重新命名文件和文件夹
-
- for /f "tokens=1 delims=-" %%A in ("%%~nxF") do (
-
- set "sequence=%%A"
-
- ren "%%F" "!sequence!-%%B"
-
- ren "%%~pF" "!sequence!-%%~pFB"
-
- )
-
- )
-
- )
-
- :continue
-
- echo 大于50MB的文件数量: %count%
-
- echo 变量 i 的值: %i%
-
- endlocal REM 注意:结束本地环境变量作用域的设定,以避免影响到外部环境。
复制代码
|