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

[文本处理] [已解决]批处理如何实现将指定txt文本里的前几行内容复制到剪贴板并从文本中删除

[复制链接]
发表于 2014-1-25 16:32:49 | 显示全部楼层
回复 15# pengyou86
说实话,用批处理操控剪切板还蛮麻烦的,遂用au3,本想编译成exe贴上来的,但是不能上传50K以上的文件。。。要用就qq联系我吧

  1. Local $line,$s
  2. For $i=1 To 48
  3.   $line=FileReadLine("1.txt",$i)
  4.   $s&=@CRLF & $line
  5. Next
  6. ClipPut($s)
复制代码
 楼主| 发表于 2014-1-25 16:54:22 | 显示全部楼层
回复 16# weichenxiehou


    好的 我申请加你的QQ了
发表于 2014-1-25 17:01:02 | 显示全部楼层
回复 16# weichenxiehou


    Win7系统有clip命令
发表于 2014-1-25 17:07:12 | 显示全部楼层
回复 18# Batcher
soga,我对批处理的探索和认识还停留在xp阶段。
发表于 2014-1-25 18:06:46 | 显示全部楼层
用 more 就好:
  1. @more +48 1.txt
复制代码
 楼主| 发表于 2014-1-25 18:08:47 | 显示全部楼层
回复 20# CrLf


    麻烦写个完整的吧 我是个菜鸟  谢谢
发表于 2014-1-25 18:29:06 | 显示全部楼层
回复 21# pengyou86


有clip命令的话可以如此:
  1. @more +48 1.txt|clip
复制代码
xp可以如此(借鉴demon的vbs方案):
  1. @set @n=0;//&goto bat
  2. var Form = new ActiveXObject('Forms.Form.1')
  3. with(Form.Controls.Add("Forms.TextBox.1").Object)
  4. {
  5.         MultiLine = true
  6.         Text = WScript.StdIn.ReadAll()
  7.         SelStart = 0
  8.         SelLength = TextLength
  9.         Copy()
  10. }

  11. /*
  12. :bat
  13. @more +48 1.txt|cscript -e:jscript %0
  14. pause
  15. :*/
复制代码
发表于 2014-1-25 18:40:11 | 显示全部楼层
来个ahk:
  1. text := ""
  2. Loop, Read, 1.txt
  3.    if (A_Index>48)
  4.       text := text A_LoopReadLine "`r`n"

  5. clipboard := text
  6. return
复制代码
au3 和 ahk 处理人机交互真给力
发表于 2014-1-25 20:43:37 | 显示全部楼层
这个好 mark一下 留着用.
学习了..
发表于 2014-1-25 20:49:07 | 显示全部楼层
本帖最后由 terse 于 2014-1-25 20:53 编辑

纯P 环境 WIN7
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%i in (1.txt) do set /an+=1&if !n! leq 48 echo %%i)>$
  3. clip<$
  4. >$ more +48 1.txt
  5. move $ 1.txt
  6. pause
复制代码
  1. @echo off&setlocal enabledelayedexpansion
  2. del $* 2>nul
  3. for /f "delims=" %%i in (1.txt) do set /an+=1&if !n! gtr 48 (>>$$ echo %%i)else >>$ echo %%i
  4. clip<$&move $$ 1.txt >nul&del $*
  5. pause
复制代码
 楼主| 发表于 2014-1-25 21:50:47 | 显示全部楼层
谢谢上面各位高手测试没有一个能用的
 楼主| 发表于 2014-1-25 21:53:00 | 显示全部楼层
麻烦高手再帮忙一下
发表于 2014-1-25 22:01:46 | 显示全部楼层
1       14楼 ,我手误搞成38行了,抱歉.
2  [1.txt文本中去掉48行内容 然后把剪切去掉48行的内容保存到剪切板就可以了]    ----这句话如何理解?首先声明,我个人理解能力太差,但我认为你说的太渣!

这句话我理解为,把1.txt中从49行到文本文件末尾(1万多行)复制到剪贴板.但是原来楼主说的是把1---48行放入剪贴板,这是完全相反的,而且大家回的代码都是[取]1---48行,而不是[弃]!
 楼主| 发表于 2014-1-25 22:10:44 | 显示全部楼层
1       14楼 ,我手误搞成38行了,抱歉.
2  [1.txt文本中去掉48行内容 然后把剪切去掉48行的内容保存到剪切 ...
PowerShell 发表于 2014-1-25 22:01



    对我的描述可能有问题 你说的对
发表于 2014-1-26 01:48:56 | 显示全部楼层
本帖最后由 CrLf 于 2014-1-26 02:39 编辑

是这意思吧:
  1. @set @n=0;//&goto bat
  2. var Form,i,str=''
  3. for(i=0;i<3;i++)str+=WSH.StdIn.ReadLine()+'\r\n'
  4. with(new ActiveXObject('Forms.Form.1').Controls.Add("Forms.TextBox.1").Object)
  5. {
  6.         MultiLine = true
  7.         Text = str
  8.         SelStart = 0
  9.         SelLength = TextLength
  10.         Copy()
  11. }
  12. WSH.Echo(WSH.StdIn.ReadAll())

  13. /*
  14. :bat
  15. @<1.txt cscript -nologo -e:jscript %0|sort /+9999|sort /+9999 /o 1.txt
  16. pause
  17. :*/
复制代码
要求有变动最好也能更新到顶楼

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:53 , Processed in 0.019718 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表