5

私のスクリプトは次のようになります。

cd <Directory>
set counter = 1
for /r %%f in (*) do (
<Do task>
echo Task completed for file<counter> >> C:\log
counter++
)

counter実際の値を使用する方法がわかりません。counterまたは%counter%、単に同じ文字列をエコーする場合。counterこの場合、行をどのように変更すればよいですか?

4

2 に答える 2

7

SET/A数式を評価する場合は、一緒に使用する必要があります。また、最初の行として入力して、最初に Delayed Expansion を有効にする必要がありますSETLOCAL ENABLEDELAYEDEXPANSION。ループ内の評価**FOR**は、最後の繰り返しが発生するまで行われません。ただし、反復ごとに Counter の値がインクリメントされるように、バッチ ファイルを変更しました。

SETLOCAL ENABLEDELAYEDEXPANSION

@echo off

set /a counter=1

for /r %%f in (*) do (
  echo Task Completed for file !counter! >> c:\log
  set /a counter=!counter!+1
)
于 2012-11-06T06:08:46.800 に答える