[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 qzwifi 于 2016-3-8 10:25 编辑

回复 6# flyinnet9

是放在同一目录的,里面只有文本换行符的空白文本。

TOP

回复 7# qzwifi


    已改

TOP

回复 8# flyinnet9

你好,修改的运行后只有第一行可以正确保存。其它的行还是换行符。请给完善一下,非常感谢!

TOP

回复 9# qzwifi


    我这边测试没问题,把你的原始文件发过来看看

TOP

回复 10# flyinnet9


    你好,如:
01 02 03 04 04 05 05 05 06 06 07 08 09 10 11 11 11 12 12 12
01 03 03 04 04 05 05 06 06 07 07 08 10 10 11 11 12 12 12 13 13 13
01 01 02 03 03 04 04 05 05 06 07 07 07 08 09 09

运行后得:
05 11 12
03 04 06 07 10 13
01 08 09

而正确的应该是:
05 11 12
12 13
07

TOP

回复 12# qzwifi


    不会举例麻烦用原始数据!!!!!
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. (for /f "delims=" %%a in (a.txt) do (
  4.   for %%b in (%%a) do (
  5.     set /a #%%b+=1
  6.     if !#%%b!==3 set /p =%%b <nul
  7.   )
  8.   echo.
  9.   for /f "tokens=1-2 delims==" %%c in ('set #') do set %%c=
  10. ))>b.txt
复制代码
1

评分人数

TOP

回复 13# happy886rr

你好,非常感谢。你的结果是正确的没错。我自己加保存没有保存下来。

TOP

回复 15# qzwifi

  直接拖拽txt到批处理上运行,txt文件路径不要有空格
    那肯定没错啊,因为我把所有要出现的漏洞都考虑进去了,下面是保存的代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 设置重复次数
  4. set N=3
  5. pushd "%~dp0"
  6. (for /f "delims=" %%a in (%1) do (
  7. for %%b in (%%a) do (
  8. if defined #%%b (set /a #%%b+=1) else (set #%%b=1)
  9. )
  10. for /f "tokens=1 delims=#=" %%c in ('set #') do (
  11. if !#%%c! equ !N! (set /p = %%c <nul)
  12. set #%%c=<nul
  13. )
  14. echo.
  15. ))>.\b.txt
  16. start .\b.txt
复制代码
1

评分人数

TOP

本帖最后由 qzwifi 于 2016-3-8 13:07 编辑

回复 15# happy886rr


    OK

TOP

回复 17# happy886rr

可以了,谢谢!

TOP

  1. @if (0)==(0) echo off
  2. cscript //nologo //e:jscript "%~0" < a.txt > b.txt
  3. pause & exit
  4. @end
  5. while(!WSH.StdIn.AtEndOfStream){
  6.     var arr = WSH.StdIn.ReadLine().match(/\S+/g);
  7.     if (arr) {
  8.         var m = [], s = arr.sort().join(' ') + ' ';
  9.         s.replace(/(\S+ )\1*/g,
  10.             function(a,b){if(a.split(' ').length == 4) m.push(b)}
  11.         )
  12.         WSH.Echo(m.join(''));
  13.     }
  14. }
复制代码

TOP

本帖最后由 WHY 于 2016-3-8 19:30 编辑

test.ps1
  1. get-Content a.txt | `
  2. ?{$_ -NotMatch '^\s*$'} | %{
  3.     $arr = [regex]::Matches($_, '\S+') | %{ $_.Value }
  4.     $arr = $arr | Group | ?{$_.Count -eq 3} | %{ $_.Name }
  5.     $arr -join ' '
  6. }>b.txt
复制代码

TOP

本帖最后由 pcl_test 于 2016-8-10 15:51 编辑

第三方http://www.bathome.net/s/tool/index.html?key=gawk
  1. @echo off
  2. rem 指定查找重复的次数
  3. set n=2
  4. gawk -v n=%n% "{delete a;s=\"\";for(i=1; i<=NF; i++)a[$i]++;for(b in a){if(a[b]==n)s=s\" \"b };print s}" "1.txt">"2.txt"
  5. pause
复制代码

TOP

返回列表