2

我正在尝试为 Windows 7 编写一个批处理文件,该文件将创建 100 个名称为 ex1 到 ex100 的文本文件。在每个文件中,我需要用与文件名相同的文本替换给定的文本(例如 ex3)。

到目前为止,我已经设法获取批处理文件来创建 100 个文件,但是每个文件中的文本(ex3)被 ex1 替换。

这是我使用的代码。我是一个完全的新手,并且从我发现的位中拼凑起来。

@echo off
setlocal enabledelayedexpansion

FOR /F "usebackq delims=" %%G IN ("c:\batch\batch.txt") DO (
  Set Line=%%G
  Set Line=!Line:"='!
  Call:replace "!Line!"
)

pause


goto:eof ------------
  :replace subroutine
  (Set Line=%*&Set Line=!Line:~1,-1!)
  Set Line=!Line:'="!

For /l %%A in (7,1,100) do Set "Line=!Line:ex3=ex%%A!"  
For /l %%n in (1,1,100) do echo.!Line! >>"c:\batch\ex%%n.txt"

 goto:eof ------------

有什么建议么?

4

1 回答 1

0

Wow - that code is way more convoluted than is needed (and also slow because of CALL).

@echo off
setlocal enableDelayedExpansion
set "folder=c:\batch"
for /l %%N in (1 1 100) do del "%folder%\ex%%N.txt" 2>nul
for /f "usebackq delims=" %%A in ("%folder%\batch.txt") do (
  set "line=%%A"
  for /l %%N in (1 1 100) do (echo !line:ex3=ex%%N!)>>"%folder%\ex%%N"
)
于 2012-10-18T22:36:59.657 回答