Board logo

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

作者: swanseabrian    时间: 2021-11-29 17:20     标题: 如何实现提取word标题或者第一行前几个字为文件名

遍历文件目录
如何实现提取word标题或者第一行前几个字为文件名

这个可以做吗,谢谢
作者: idwma    时间: 2021-11-29 18:10

  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. }
复制代码

作者: 5i365    时间: 2021-11-29 18:34

回复 2# idwma


    我在桌面上新建了一个为名      新建 Microsoft Word 文档.docx      的文件, 里面有标题文字,  执行上面的批处理后, 文件名没有变化
作者: 5i365    时间: 2021-11-29 18:39

本帖最后由 5i365 于 2021-11-29 18:41 编辑

回复 2# idwma

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

    #@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
作者: swanseabrian    时间: 2021-11-29 18:40

回复 2# idwma


    dir *.doc
或者dir *.docx
两种一起查找,要怎么写呢
作者: swanseabrian    时间: 2021-11-29 18:41

回复 4# 5i365


     dir *.doc
或者dir *.docx
两种一起查找,要怎么写呢
作者: 5i365    时间: 2021-11-29 18:44

回复 2# idwma


    刚才看了一下, 把你代码里的.doc改为了.docx 改可以改名了, 但是文件名全删了, 变成了    .docx   真是怪了, 第一次看到没有文件名, 只有 扩展名的文件名
作者: swanseabrian    时间: 2021-11-29 18:53

回复 7# 5i365


    不能用?
作者: 5i365    时间: 2021-11-29 18:57

回复 8# swanseabrian


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

新建 Microsoft Word 文档.docx
作者: swanseabrian    时间: 2021-11-29 19:15

回复 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

这是啥意思
作者: swanseabrian    时间: 2021-11-29 20:15

回复 11# idwma


    刚试了,没改, 也没报错
作者: swanseabrian    时间: 2021-11-29 21:56

回复 2# idwma


    你发的啥,看不到了怎么回事
作者: idwma    时间: 2021-11-30 14:06

本帖最后由 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()
复制代码

作者: 5i365    时间: 2021-11-30 14:32

回复 13# idwma


    这次是OK的
作者: swanseabrian    时间: 2021-11-30 19:33

回复 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
+ ~~~~~~~~~~~~~~~~~~
作者: swanseabrian    时间: 2021-11-30 19:33

回复 13# idwma


    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
+ ~~~~~~~~~~~~~~~~~~

这是啥问题 批量怎么就不行
作者: swanseabrian    时间: 2021-11-30 19:45

回复 14# 5i365


    你那里ok?? 老铁?
作者: idwma    时间: 2021-12-1 09:02

回复 16# swanseabrian


    没碰到过,不知道呀
作者: swanseabrian    时间: 2021-12-24 11:18

本帖最后由 swanseabrian 于 2021-12-24 12:12 编辑

回复 2# idwma


    老铁,现在有这么个问题,powershell怎么解决?

a文件夹 a1文件夹  a1子文件夹1里图片数量  a1子文件夹2里图片数量  a文件夹创建时间
a文件夹 a2文件夹  a2子文件夹1里图片数量  a2子文件夹2里图片数量  a文件夹创建时间
a文件夹 a3文件夹  a3子文件夹1里图片数量  a3子文件夹2里图片数量  a文件夹创建时间

上面这是excel里的栏目顺序  5个栏目  我要的效果就上面的效果



现在要用程序

遍历文件夹来写入到相应的栏目

匹配到excel里对应到excel里的栏目,

这个powershell 如何实现呢
python效果太低了,
还是powershell效果高
谢谢
作者: idwma    时间: 2021-12-25 14:41

回复 19# swanseabrian


    懵了没看懂
作者: swanseabrian    时间: 2021-12-25 15:20

回复 20# idwma


   你看一下这个贴子,比较 清楚
https://fishc.com.cn/thread-207336-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2