批量读取和重命名文本文件问题?

时间:2013-12-13 00:02:52

标签: batch-file scripting rename

我是.bat文件的初学者,我正在尝试使用记事本中生成的列表重命名多个绘图(.dwg)文件。记事本列表包含一个如下所示的图号列表:

01013-13000p001
06301-12550p001

等。

有数百个,我想从文本中取出这些数字并将其放入一系列dwg文件中,这些文件是现在通用的(drawing.dwg,drawing(2).dwg,drawing(3) ).dwg等..)我只想出一种方法来读取文本文件,但是无法弄清楚如何从文本文件中取出并用它重命名多个图形文件。尝试从文本文件中读取最新内容并将其放入.dwg文件失败后,下面是我所得到的。我计划在所有相同的目录中进行此操作,任何建议将不胜感激。感谢。

@echo off
for /f "tokens=* delims=" %%x in (dwgNumbers.txt.txt) do echo %%x 
pause

2 个答案:

答案 0 :(得分:1)

for /f "delims=" %%x in (dwgNumbers.txt.txt) do echo copy /b "blank generic drawing.dwg" "%%x.dwg"

(作为批量生产线)做你想做的事情? - 请注意,ECHO关键字用于显示要执行的操作。需要删除echo关键字才能实际执行copy

答案 1 :(得分:0)

这将取自.txt的数字,使用已重新加入的数据重命名现有的.dwg文件。如果.txt中有更多文件编号,则会重命名,直到数字耗尽为止。

for循环使用dir命令获取文件列表,以避免重命名后的文件属于for的过滤器并重新处理。< / p>

此代码在重命名行中包含echo命令,以防止在发生故障时丢失数据。当输出到控制台是需要的时候,从重命名行中删除echo命令。

@echo off

    rem Prepare environment
    setlocal enableextensions enabledelayedexpansion

    rem Read input file for numbers
    < dwgNumbers.txt ( 

        rem Process dwg files in directory
        for /f "tokens=*" %%f in ('dir /b *.dwg') do (

            rem Get number from input file
            set "number="
            set /p "number="

            rem If there is a number, rename the file
            if defined number echo ren "%%~f" "!number!.dwg"
        )
    )

    rem Clean
    endlocal