[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
原帖由 sgaizxt001 于 2010-6-19 05:39 发表
为什么不直接
more +2 "!wjm!">"!num!.txt"
del /q "%%a"
可以不用临时文件吧。


是哦,看来我最近脑袋短路的厉害啊~
技术问题请到论坛发帖求助!

TOP

偶真的很郁闷,楼上诸位高手给出的代码为什么没有一个可以成功运行的?

TOP

难道是你文本编码的问题?
努力学习,努力挣分

TOP

回复 17楼 的帖子

能否把其中一个文件用附件的形式传上来看看?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 hanyeguxing 于 2010-6-18 11:58 发表
@echo off
for %%a in (*.txt) do (
   setlocal enabledelayedexpansion
   (for /F "usebackq delims=" %%b in ("%%a") do (
      if defined b (echo.%%b) else set "a=%%b"
      set b==
   ))>$
   re ...


在我机子上我用这段代码测试了一下,发现并不能完成楼主需要的功能,提示“存在一个重名文件,或是找不到文件”,不知是怎么回事。

TOP

可以用VBS实现楼主所要的结果,但不知道在这个版块发VBS代码是不是不太合适。。。。。。

TOP

翻阅老帖,看来可以用VBS解决批处理遇到的问题,哈哈,放心了O(∩_∩)O~
  1. set fso=createobject("scripting.filesystemobject")
  2. set fd=fso.getfolder(".")
  3. fpath=fd.path
  4. set fo=fso.getfolder(fpath)
  5. set fc=fo.files
  6. for each f in fc
  7.     ext=f.type
  8.     if ext="文本文档" then
  9.         strtext=""
  10.         set rfile=fso.opentextfile(f)
  11.         fname=rfile.readline
  12.         rfile.skipline
  13.         do until rfile.atendofstream=true
  14.             strline=rfile.readline
  15.             strtext=strtext&strline&vbcrlf
  16.         loop
  17.         rfile.close
  18.         set wfile=fso.opentextfile(f,2)
  19.         wfile.write strtext
  20.         wfile.close
  21.         newname=fname&".txt"
  22.         f.name=newname
  23.     end if
  24. next
复制代码
如果txt文件较多,可能会等待几秒

[ 本帖最后由 BowAngel 于 2010-6-21 15:28 编辑 ]

TOP

感谢楼上,不过还是有点问题,您可以新建几个文件试一下

TOP

原帖由 zxzl 于 2010-6-21 15:41 发表
感谢楼上,不过还是有点问题,您可以新建几个文件试一下

什么问题?

TOP

不能全部处理,而且有错误提示,你可以试一下

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('dir /a:-d /b *.txt') do (
  3.     set OldName=%%a
  4.     set /p NewName=<"%%a"
  5.     SetLocal EnableDelayedExpansion
  6.     more +2 "!OldName!" > "!NewName!.txt"
  7.     EndLocal
  8.     del /a /f "%%a"
  9. )
复制代码
1

评分人数

TOP

回复 25楼 的帖子

能否把你的数据更新到顶楼?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

26楼的代码可以实现这个功能了,谢谢各位兄弟

TOP

回复 26# 73yexs4f8qzk


    真的太巧妙了!佩服!

TOP

回复 26# 73yexs4f8qzk

这句代码不好理解啊:
    set /p NewName=<"%%a"

我的理解是NewName这个变量得到的是%%a代表的txt文件的全部内容。可是在下一句中:
more +2 "!OldName!" > "!NewName!.txt"
从这里句代码来看的话,NewName这个变量应该是%%a代表的文本文件中第一行的内容啊。可是没有看到有一句从%%a中提取第一行内容的代码啊?
有没有谁能理解这句代码,帮我解释一下,谢谢!

TOP

返回列表