バッチファイルにforループがあります:
@echo off
set logpath1=C:\path\to\first\log
set logpath2=C:\path\to\second\log
FOR %%G IN (%logpath1% %logpath2%) DO (
pushd %%G
pushd ..\
for %%D IN (%CD%) DO SET "dirname=%%~nxD"
popd
echo Will prefix files in %%G with %supername%
:: do operations.
popd
)
ただし、これによって作業ディレクトリが変更されることはないようです。からスクリプトを実行した場合
C:\tmp\path\to
それから私は得る
Will prefix files in C:\path\to\first\log with tmp
Will prefix files in C:\path\to\second\log with tmp
私の目的は、複数のディレクトリにあるログファイルを圧縮することです。%CD%の代わりにchdir、cd / d、&〜pd0を試し、高低を検索しました。なぜこれが機能しないのか誰かに教えてもらえますか?