0

テキスト ファイルのリストをループして、最初の行の 1 つに名前の一部を挿入して書き直す必要があります。次のようにします。

元のファイル名: 101f.htm

元のファイルの内容:

Line1
Line2
.
.
LineN

新しいファイル名: 101f_.htm

新しいファイルの内容:

<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 
</head> 
<tr> 
Paciente Matricula: 101
</tr> 

Line1
Line2
.
.
LineN

この .bat スクリプトでいくつかの結果を達成しました。

set NOME=%%~ni_.xls
set MTR=%%~ni
for /R c:\teste\teste %%i IN (*.htm) DO (
ECHO.^<head^> > %NOME%
ECHO.^<meta http-equiv^="Content-Type" content^="text/html;charset=utf-8"^> >> %NOME%
ECHO.^</head^> >> %NOME%
ECHO.^<tr^> >> %NOME%
ECHO.Paciente Matricula: %MTR% >> %NOME%
ECHO.^</tr^> >> %NOME%
ECHO. >> %NOME%
type %%~nxi >> %NOME%
PAUSE
)

次の行を除いて、必要なものはすべて提供されます。

「パシェンテ マトリクラ: 101f」

次のような行表示から「f」を削除する必要があります。

「パシェンテ マトリキュラ: 101」

前もって感謝します!

4

2 に答える 2

0

Endoro の回答に基づいて、次の置換構文を使用すると機能します。

set MTR=%%~ni
set MTR=!MTR:f=!

I can't grant the "f" 文字が最後になり、その後にスペースが続く可能性があるため、このシンタックスを使用しました。

以下のスクリプトは、タスクに対して機能します。

setlocal ENABLEDELAYEDEXPANSION
set NOME=%%~ni_.xls
for /R c:\teste\teste %%i IN (*.htm) DO (
set MTR=%%~ni
set MTR=!MTR:f=!
ECHO.^<head^> > %NOME%
ECHO.^<meta http-equiv^="Content-Type" content^="text/html;charset=utf-8"^> >> %NOME%
ECHO.^</head^> >> %NOME%
ECHO.^<tr^> >> %NOME%
ECHO.Paciente Matricula: !MTR! >> %NOME%
ECHO.^</tr^> >> %NOME%
ECHO. >> %NOME%
type %%~nxi >> %NOME%
)
于 2013-09-25T19:15:08.200 に答える