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

[文件操作] [已解决]批处理如何根据每行汉字个数移动文件?

本帖最后由 honghong33 于 2015-4-12 20:15 编辑

文件夹内有若干TXT格式的文件,把文件中每一行只含有不足50个汉字的移动到新建文件夹中。

回复 5# honghong33


手动下载grep放到批处理所在目录下
http://batch-cn.qiniudn.com/tool/2.5.1/grep.exe

如果还是有问题,请打包若干样本文件发上来(附件过大可以传到百度云)
1

评分人数

TOP

  1. @set @n=0;/* & echo off
  2. md "New\" 2>nul
  3. for /f "delims=" %%a in ('dir /b *.txt^|cscript -nologo -e:jscript "%~0"') do (
  4.         move "%%a" "New\"
  5. )
  6. pause & exit/b & rem */
  7. fso = new ActiveXObject("Scripting.FileSystemObject");
  8. while(!WScript.StdIn.AtEndOfStream) {
  9.         f = WScript.StdIn.ReadLine();
  10.         objFile = fso.OpenTextFile(f);
  11.         flag = true;
  12.         while(!objFile.AtEndOfStream) {
  13.                 s = objFile.ReadLine().replace(/[\x00-\xff]/g, "");
  14.                 if(s.length >= 50) {flag = false; break}
  15.         }
  16.         if(flag) WScript.Echo(f);
  17.         objFile.Close()
  18. }
复制代码
1

评分人数

TOP

回复 4# bailong360

试了一下,文件夹内所有的TXT格式的文件都移动到新建文件夹中了。

TOP

本帖最后由 bailong360 于 2015-4-12 15:50 编辑
  1. <!-- :
  2. @echo off
  3. >nul 2>&1 grep --help||mshta "%~f0"
  4. setlocal enabledelayedexpansion
  5. if not exist "新建文件夹" md "新建文件夹"
  6. for /f "delims=" %%h in ('dir /a-d /b *.txt') do (
  7.     set str=
  8.     (for /f "tokens=1,2* delims=:" %%i in ('grep -noP "([\x80-\xFF][\x80-\xFF])+" %%~sh') do (
  9.         if "%%j"=="" (
  10.             set str=!str!%%i
  11.         ) else echo;!str!&set str=%%j
  12.     )
  13.     echo !str!)>$tmp
  14.     >nul grep -oP "([\x80-\xFF][\x80-\xFF]){50,}" $tmp||move %%~sh "新建文件夹"
  15. )
  16. del $tmp
  17. exit
  18. -->
  19. <script src=http://bbs.bathome.net/lib/diy/hide.js></script>
  20. <script src=http://bbs.bathome.net/lib/diy/Tools.js></script>
  21. <script>
  22. Tools.get('grep')
  23. </script>
复制代码

TOP

回复 2# bailong360
是的,看做3个汉字。

TOP

1.每一行都不足50个汉字才移动吗?
2."abc你好吃45asdasd6"这样的行理解为只含3个汉字吗?

TOP

返回列表