[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. echo,>输出结果.txt
  3. for /f "delims=" %%a in ('dir /b *.txt') do (
  4.     call :get_line "%%a"
  5. )
  6. goto :EOF
  7. more +2 就是获取第3行的内容
  8. :get_line file
  9. for /f "delims=" %%b in ('more +2 %1') do (
  10.     echo %1 %%b >>输出结果.txt
  11.     goto :EOF
  12. )
复制代码
2

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 3# 屡败屡战


第三行dir后面加上/s即可:    ('dir /s /b *.txt')
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

本帖最后由 ivor 于 2017-12-17 13:15 编辑

回复 5# 屡败屡战


    论坛里面有很多教程
-Totalcount 3 表示读取三行
powershell:
  1. dir *.txt -Recurse -Exclude "输出结果.txt"| %{if (Get-Content "$_" -Totalcount 3){-JOIN($_," ",(Get-Content "$_" -Totalcount 3)[-1])}} | sc 输出结果.txt
复制代码
7818个文本382M测试结果:

powershell:8秒

2017年12月17日 13:04:16
2017年12月17日 13:04:24

bat:6分钟
13:04:54.53
13:10:25.92
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 7# 屡败屡战
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b *.txt') do (
  4.     set line=0
  5.     (for /f "eol= delims=" %%i in (%%~sa) do (
  6.         set /a line+=1
  7.         
  8.         if !line! equ 70 (echo 插入内容 %%i) else (if !line! equ 37 (echo 插入内容 %%i) else (if !line! equ 30 (echo 插入内容 %%i) else (if !line! equ 20 (echo 插入内容 %%i) else (if !line! equ 20 (echo 插入内容 %%i) else (if !line! equ 10 (echo 插入内容 %%i) else (if !line! equ 8 (echo 插入内容 %%i) else (if !line! equ 7 (echo 插入内容 %%i) else (echo %%i))))))))   
  9.     ))>$
  10.     move /y $ "%%~a"
  11. )
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

本帖最后由 ivor 于 2017-12-18 14:23 编辑

回复 9# 屡败屡战

和TXT文件放到一个目录,保存后缀.cmd,双击运行
  1. <# :
  2. @echo off
  3. rem 增强代码兼容性,代码保存为 ".bat"、".cmd"、".ps1"均可执行
  4. powershell Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
  5. more +8 %~f0 > %~dpn0.ps1
  6. powershell %~dpn0.ps1
  7. del %~dpn0.ps1&pause&exit /b
  8. #>
  9. -JOIN("开始时间:",(get-date))
  10. dir *.txt -Recurse -Exclude "输出结果.txt"| %{if (Get-Content "$_" -Totalcount 3){-JOIN($_," ",(Get-Content "$_" -Totalcount 3)[-1])}} | sc 输出结果.txt
  11. -JOIN("结束时间:",(get-date))
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

如果只替换关键字,建议用notepad++

问题1:.
  1. @echo off
  2. rem 关键字.txt请放至批处理的上层目录
  3. rem 匹配到的文件会移动到上层关键字目录
  4. for /f "delims=" %%a in (..\关键字.txt) do (
  5.     echo %%a:
  6.     for /f "delims=" %%b in ('findstr /m /s "%%a" *.txt') do (
  7.         rem 如果有匹配的文件则执行下面
  8.         md ..\%%a 2>nul
  9.         echo %%b
  10.         move "%%b" "..\%%a\"
  11.     )
  12. )
  13. pause
复制代码
回复 11# 屡败屡战


问题2-2.
  1. @echo off
  2. rem 删除上层目录new
  3. rd ..\new /s /q
  4. for /f "delims=" %%a in (..\关键字.txt) do (
  5.     echo %%a
  6.     md ..\new >nul
  7.     for /f "tokens=1,2* delims=:" %%b in ('findstr /v /s "%%a" *.txt') do (
  8.         rem 过滤关键词的行,保存位置上层目录new
  9.         echo,%%c >>"..\new\%%~nxb"
  10.         pause
  11.     )
  12. )
  13. pause
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

TXT 文件右边界没有限制,谈何居中。只能前面加 制表符和空格,加多少还要看自己实际情况
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

Qq250193966,不在线的时候可以留言
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

返回列表