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

[文件操作] 如何实现提取word标题或者第一行前几个字为文件名

[复制链接]
发表于 2021-11-29 17:20:28 | 显示全部楼层 |阅读模式
遍历文件目录
如何实现提取word标题或者第一行前几个字为文件名

这个可以做吗,谢谢
发表于 2021-11-29 18:10:39 | 显示全部楼层
  1. #@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
  2. $a=New-Object -ComObject Shell.Application
  3. dir *.doc|%{
  4. $b=$a.namespace($_.directoryname)
  5. $c=$b.getdetailsof($b.parsename($_.name),21)
  6. ren $_.fullname "$($c+$_.extension)"
  7. }
复制代码
发表于 2021-11-29 18:34:31 | 显示全部楼层
回复 2# idwma


    我在桌面上新建了一个为名      新建 Microsoft Word 文档.docx      的文件, 里面有标题文字,  执行上面的批处理后, 文件名没有变化
发表于 2021-11-29 18:39:44 | 显示全部楼层
本帖最后由 5i365 于 2021-11-29 18:41 编辑

回复 2# idwma

大侠你的下面这行代码, 用的真是妙啊 , 另外几行代码, 看不太懂, 太精练了

    #@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
 楼主| 发表于 2021-11-29 18:40:44 | 显示全部楼层
回复 2# idwma


    dir *.doc
或者dir *.docx
两种一起查找,要怎么写呢
 楼主| 发表于 2021-11-29 18:41:39 | 显示全部楼层
回复 4# 5i365


     dir *.doc
或者dir *.docx
两种一起查找,要怎么写呢
发表于 2021-11-29 18:44:04 | 显示全部楼层
回复 2# idwma


    刚才看了一下, 把你代码里的.doc改为了.docx 改可以改名了, 但是文件名全删了, 变成了    .docx   真是怪了, 第一次看到没有文件名, 只有 扩展名的文件名
 楼主| 发表于 2021-11-29 18:53:34 | 显示全部楼层
回复 7# 5i365


    不能用?
发表于 2021-11-29 18:57:28 | 显示全部楼层
回复 8# swanseabrian


    嗯, 不能用, 执行命令后, 就没有文件名了, 你用我的下面的文件名试一下

新建 Microsoft Word 文档.docx
 楼主| 发表于 2021-11-29 19:15:11 | 显示全部楼层
回复 6# swanseabrian


    ren : 当文件已存在时,无法创建该文件。
所在位置 行:6 字符: 1
+ ren $_.fullname "$($c+$_.extension)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Users\Admini...检测卷新人教版_360.doc:String) [Rename-Item], IOException
    + FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand

这是啥意思
 楼主| 发表于 2021-11-29 20:15:31 | 显示全部楼层
回复 11# idwma


    刚试了,没改, 也没报错
 楼主| 发表于 2021-11-29 21:56:09 | 显示全部楼层
回复 2# idwma


    你发的啥,看不到了怎么回事
发表于 2021-11-30 14:06:35 | 显示全部楼层
本帖最后由 idwma 于 2021-11-30 14:08 编辑

回复 12# swanseabrian
换了一种方式只有office2003,docx没试
  1. #@&cls&powershell "type %~s0|out-string|iex"&pause&exit
  2. $a=new-object -comobject word.application
  3. dir * -inc *.doc,*.docx|%{
  4. $b=$a.Documents.Open($_.fullname)
  5. $c=$b.range().text.trim().substring(0,5)+$_.extension #5是前5个字
  6. $b.close()
  7. ren $_.fullname $c
  8. }
  9. $a.quit()
复制代码
发表于 2021-11-30 14:32:23 | 显示全部楼层
回复 13# idwma


    这次是OK的
 楼主| 发表于 2021-11-30 19:33:32 | 显示全部楼层
回复 14# 5i365


    RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA)
所在位置 行:4 字符: 1
+ $b=$a.Documents.Open($_.fullname)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: ( [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException

RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA)
所在位置 行:5 字符: 1
+ $c=$b.range().text.trim().substring(0,5)+$_.extension #5是前5个字
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException

RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA)
所在位置 行:6 字符: 1
+ $b.close()
+ ~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException

ren : 当文件已存在时,无法创建该文件。
所在位置 行:7 字符: 1
+ ren $_.fullname $c
+ ~~~~~~~~~~~~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 18:15 , Processed in 0.032894 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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