chatgpt确实很牛
其中调用了everything,它使用了一个命令行接口程序es.exe 我也是第一次看到。
当时还告诉chatgpt这个es程序不存在,结果chatgpt很谦虚的认可了我的说法,换用了everything.exe,事后看我觉得它给我带来的真的是震撼。
还有就是,我会问刚给我的代码,哪些是怎么回事,居然一一给我解答了。
贴一下需求先
帮我编写一个批处理
备注:每一步执行后,请增加一个pause暂停便于观察,批处理每一步显示全部为打开,编码请支持中文显示
步骤1.定义一个名为“repairDir”常量,常量内容是当前目录
步骤2.从repairDir目录中随机取出一个文件
步骤3.将该文件名通过调用Everything进行搜索
步骤4.读取搜索结果文件并查找与“repairDir”常量完全重复的文件
步骤5.删除“repairDir”中完全重复的文件
贴一下之前的代码吧,结束
@echo off
chcp 65001REM 步骤1.定义一个名为“repairDir”常量,常量内容是当前目录
set "repairDir=%cd%"
set file_count=1
echo %repairDir%
::pause:next_file
file_count = file_count + 1
REM 步骤2.从repairDir中随机取出一个文件
setlocal enabledelayedexpansion
set /a count=0
for /f "delims=" %%F in ('dir /b "!repairDir!\*.jpg"') do (set /a count+=1set "file[!count!]=%%F"
)echo 共%count%个文件set /a "randNum=(%random%*count/32768)+1"echo 随机数为%randNum%set "randFile=!file[%randNum%]!"
echo 随机选择的文件为: !randFile!
::pauseREM 步骤3.将该文件名通过调用Everything进行搜索
set "searchStr=!randFile!"
echo 搜索关键词: !searchStr!set "Everything_path=C:\Progra~1\Everything\es.exe" ::将该路径替换为实际的Everything.exe路径
%Everything_path% -s %searchStr% -p "F:\" -export-txt result.txt::pauseREM 步骤4.读取搜索结果文件并查找与“repairDir”常量完全重复的文件
set "searchResult=result.txt"
echo ************************开始匹配******************************
::pause
set "everythingResultPath=result.txt" :: Everything搜索结果保存路径
set "duplicateFile="
for /f "usebackq delims=" %%a in ("%everythingResultPath%") do (set "fileName=%%~nxa"set "filePath=%%~dpa"echo %repairDir%echo "!filePath!" !fileName! rem if /i "%repairDir%"=="!filePath!"if /i "!fileName!" neq "%~nx0" set "duplicateFile=%%~a"
)
::pauseREM 步骤5.删除“repairDir”中完全重复的文件
setlocal enabledelayedexpansion
echo off
if defined duplicateFile (echo 由于找到一个"%duplicateFile%echo 确认下一步删除随机出来的文件:%randFile%::pausedel /f "%randFile%"
) else (echo 没有找到与%randFile%完全重复的文件echo 没有找到重复文件
)
echo 第%file_count%次循环
if %file_count% LEQ 100 (goto :next_file)