[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. cd.>b.txt
  3. for /f "delims=" %%i in (a.txt) do (
  4. findstr /x "%%i" "b.txt">nul||echo %%i>>b.txt
  5. )
  6. pause
复制代码

1楼的代码 加个 /x 完全匹配,试试呢
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 8# 881966

把需要处理的文本 、使用的代码、 使用该代码遇到的问题,分开一一详细描述,不是更好能解决问题?
bat小白,请多指教!谢谢!

TOP

本帖最后由 77七 于 2023-2-17 22:06 编辑
  1. @echo off
  2. cd.>b.txt
  3. for /f "delims=" %%i in ('type "a.txt" ^| findstr /n .*') do (
  4.         set "str=%%i"
  5.         setlocal enabledelayedexpansion
  6.         set "str=!str:*:=!"
  7.         if "!str!" equ "" (
  8.                 >>b.txt echo,!str!
  9.         ) else (
  10.                 findstr /x "!str!" "b.txt">nul || (>>b.txt echo,!str!)
  11.         )
  12.         endlocal
  13. )
  14. pause
复制代码

试试这样满足要求吗,如果不行,上传一个样本,再修改。批处理和文本都保存为ansi编码格式,试试吧
1

评分人数

bat小白,请多指教!谢谢!

TOP

  1. @echo off
  2. cd.>b.txt
  3. for /f "delims=" %%i in ('type "a.txt" ^| findstr /n .*') do (
  4.         set "str=%%i"
  5.         setlocal enabledelayedexpansion
  6.         set "str=!str:*:=!"
  7.         if "!str!" equ "" (
  8.                 >>b.txt echo,!str!
  9.         ) else (
  10.                 type "b.txt" | findstr /x "!str!" 1>nul 2>nul || (>>b.txt echo,!str!)
  11.         )
  12.         endlocal
  13. )
  14. pause
复制代码

如果还是不行,请把测试失败的样本原件,测试失败生成的样本和批处理原件上传到网盘
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 15# 881966

不提供出错信息,又不提供样本,让大家怎么帮你解决问题?你认为的“复制文本”就行,根本不是你想的那样,我既然发出来代码,能测试的我都测试过了,使用正常的
bat小白,请多指教!谢谢!

TOP

  1. @echo off
  2. cd.>b.txt
  3. for /f "delims=" %%i in ('type "a.txt" ^| findstr /n .*') do (
  4.         set "str=%%i"
  5.         setlocal enabledelayedexpansion
  6.         set "str=!str:*:=!"
  7.         if "!str!" equ "" (
  8.                 >>b.txt echo,!str!
  9.         )
  10.         if not "!str!" equ "" (
  11.                 set n=
  12.                 for /f "delims=" %%c in ("!str!") do (
  13.                         set "str3=%%c"
  14.                 )
  15.                 for /f "delims=" %%b in ('type "b.txt"') do (
  16.                         if "!str3!" equ "%%b" (
  17.                                 set n=1
  18.                         )
  19.                 )
  20.                 if not defined n (
  21.                         >>b.txt echo,!str!
  22.                 )
  23.         )
  24.         endlocal
  25. )
  26. pause
复制代码

水平有限,想不出完美办法,只能折中,使用前手动替换全文中的"!"为其它字符,使用此代码后替换回"!",方可基本解决你的问题。
或者直接使用代码,特殊情况下会出错。
1

评分人数

bat小白,请多指教!谢谢!

TOP

返回列表