2

ex1からex100という名前の100個のテキストファイルを作成するWindows7用のバッチファイルを作成しようとしています。各ファイルで、特定のテキスト(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

うわー-そのコードは必要以上に複雑です(そして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 に答える