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

[文本处理] [已解决]文件名提取并修改的批处理如何优化并给文件名加引号?

工作需要
需将PDF图纸拆分成单页的
并将单页文件名改为对应的图纸编号

例如:
将文件3M201.pdf 拆分成单页文件
拆分结果如下:
3M201 1.pdf ,3M201 2.pdf ,3M201 3.pdf ,3M201 4.pdf ,........
现将单页文件名
3M201 1.pdf ,3M201 2.pdf ,3M201 3.pdf ,3M201 4.pdf ,........
批量改为真正的图纸名
319000-00300-A2001-4100-0007-2106 Calciner Cleaning and Shock Blower System.pdf
319000-00300-A2001-4100-0007-2072 COAL Dosing and STORAGE CALCINER BlowerS.pdf
319000-00300-A2001-4100-0007-2073 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf
319000-00300-A2001-4100-0007-2273 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf
319000-00376-A4201-4100-0007-2008 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf
319000-00376-A4201-4100-0007-2009 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf
319000-00300-A2001-4100-0007-1310 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf
319000-00340-A1101-4100-0001-1202 COOLING WATER SUB-HEADER.pdf
319000-00340-A1101-4100-0001-1203 COOLING WATER SUB-HEADER.pdf
319000-00340-A1101-4100-0001-1204 COOLING WATER SUB-HEADER.pdf
319000-00340-A1101-4100-0001-1205 COOLING WATER SUB-HEADER.pdf


以前的操作如下:

一、由于生成的单页文件文件名中含有空格,需将空格删除
批处理命令:
  1. @echo off
  2. for /f "delims=" %%i in ('dir/b') do call :rn "%%i"
  3. goto :eof
  4. :rn
  5.  set fn=%~1
  6.  set fn=%fn: =%
  7.  set fn=%fn: =%
  8.  ren %1 %fn%
复制代码


二、批量提取单页PDF文件名
批处理命令:
  1. TREE /F >A.TXT
复制代码


结果为生成一文本文档A.TXT

将提取的文件名复制到EXCEL中作为B列,将A列写为REN,C列写为新文件名

ren3M2011.pdf"319000-00300-A2001-4100-0007-2106 Calciner Cleaning and Shock Blower System.pdf"
ren3M2012.pdf"319000-00300-A2001-4100-0007-2072 COAL Dosing and STORAGE CALCINER BlowerS.pdf"
ren3M2013.pdf"319000-00300-A2001-4100-0007-2073 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf"
ren3M2014.pdf"319000-00300-A2001-4100-0007-2273 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf"
ren3M2015.pdf"319000-00376-A4201-4100-0007-2008 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf"
ren3M2016.pdf"319000-00376-A4201-4100-0007-2009 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf"
ren3M2017.pdf"319000-00300-A2001-4100-0007-1310 Calciner Dosing and Rotary Blower System Arrangment Drawing.pdf"
ren3M2018.pdf"319000-00340-A1101-4100-0001-1202 COOLING WATER SUB-HEADER.pdf"
ren3M2019.pdf"319000-00340-A1101-4100-0001-1203 COOLING WATER SUB-HEADER.pdf"
ren3M2020.pdf"319000-00340-A1101-4100-0001-1204 COOLING WATER SUB-HEADER.pdf"
ren3M2021.pdf"319000-00340-A1101-4100-0001-1205 COOLING WATER SUB-HEADER.pdf"


注意:C列中存在空格,使用""


三、复制3列内容至.BAT,运行

结果成功

但由于操作繁琐
尤其是删除文件名中的空格此项操作


求优化


起码优化为:提取文件名并给文件名加"",而不需要删除文件名中的空格此项操作
例如:"3M201 1.pdf "
          "3M201 2.pdf "
          "3M201 3.pdf "
          "3M201 4.pdf"
          ........

[ 本帖最后由 wmg3721 于 2010-12-24 14:14 编辑 ]

回复 6楼 的帖子

学习中呢
感谢管理解惑

TOP

回复 4楼 的帖子

建议到教学区找几个基础教程看看,至少学会怎样加pause和输出重定向。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

for /r %%i in  (*.*) do echo."%%i">>A.txt

BAT-狂人解决

TOP

回复 3楼 的帖子

运行没有反应

(*.pdf)是何意?

TOP

  1. @echo off
  2. for %%a in (*.pdf) do (
  3.     echo "%%a"
  4. )
复制代码
1

评分人数

    • temp: 乐于助人PB + 2
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

没人给解决?

TOP

返回列表