|
|

"D:\UserData\Desktop\1C测试\AA200\" content:abc123
在2008系统 用工具 Everything 搜索内容 让后进行删除相同 abc123(行)
怎么写个脚本进行 快速删除指定 (配置内容.txt) 的行
配置内容.txt
内容
abc123
备注 abc123 是随机 账号 数字加字母账号 需要完全匹配行 多一字符 或者少一个字符 都不可以
可以用 bat 或者 powershell 混编 或者用 第三方工具
意思 我只要 配置 配置内容.txt 的一行内容
运行下 bat 就好了
感谢 各位大佬
这个用的sed64.exe 快一点 根据 3# 自己使用 deepseek 演变而来- @echo off
- setlocal enabledelayedexpansion
- set "sed=sed64.exe"
- set "config=配置内容.txt"
- if not exist "%sed%" (
- echo 错误:未找到 sed64.exe
- exit /b 1
- )
- if not exist "%config%" (
- echo 错误:未找到配置文件 %config%
- exit /b 1
- )
- set "sed_script=%temp%\delete_patterns.sed"
- copy nul "%sed_script%" >nul
- for /f "usebackq delims=" %%L in ("%config%") do (
- >>"%sed_script%" echo /^%%L$/d
- )
- set "target_dir=G:\目录"
- echo 开始处理目录: %target_dir%
- echo 过滤非空TXT文件...
- for /r "%target_dir%" %%F in (*.txt) do (
- REM 跳过0KB文件
- if not %%~zF == 0 (
- echo 正在处理: %%F
- "%sed%" -i -f "%sed_script%" "%%F"
- )
- )
- del /q "%sed_script%"
- echo 删除操作完成
- pause
复制代码 这个纯bat 比上面那个 慢一点 根据 4# 自己使用 deepseek 演变而来- @echo off
- setlocal enabledelayedexpansion
- if not exist "配置内容.txt" (
- echo 错误:找不到配置文件 "配置内容.txt"
- pause
- exit /b
- )
- set "pattern_file=%temp%\patterns.tmp"
- (
- for /f "usebackq delims=" %%p in ("配置内容.txt") do (
- echo ^%%p$
- )
- ) > "%pattern_file%"
- for /R %%d in (.) do (
- pushd "%%d"
- for /f "delims=" %%f in ('dir /b /a-d *.txt 2^>nul') do (
- for %%z in ("%%f") do (
- if %%~zz GTR 0 (
- echo 正在处理: "%%d\%%f"
- findstr /v /r /g:"%pattern_file%" "%%f" > "%%f.tmp"
- move /y "%%f.tmp" "%%f" > nul
- )
- )
- )
- popd
- )
- del "%pattern_file%" > nul 2>&1
- echo 所有文件处理完成!
- pause
复制代码 |
评分
-
查看全部评分
|