私は1つのWindows Server 2008 R2では動作しますが、別のものでは動作しないDOSビルドスクリプトを持っています。コマンドラインで次のいずれかの入力壊れたマシン上の症状を確認するには:コマンドラインFOR/Fが失敗する
for /f %X in ('dir /b *.txt') do @echo %X
for /f "usebackq" %X in (`dir /b *.txt`) do @echo %X
することはできます:「『DIR/B * .TXT』は、内部コマンドまたは外部コマンドとして認識されません。」例えば。
for %X in (*.txt) do @echo %X
が正しく動作しているため、/ fに正しく従っていません。私はこれがコマンド拡張機能ではないと考えています(cmd/xを起動すると同じ動作を示しますが、問題のサーバーでcmd/yを実行すると "/ fはこの時点で予期せぬものでした")。また、コマンド拡張レジストリキーをチェックし、バッチファイルで "setlocal enableextensions"を試しました。
私はそれは関係ないと思っていますが、サーバー間の違いは、失敗したものが物理的であることです。そのCPUにはVT拡張がありません。 McAfeeがインストールされていますか?私が知っている限り、彼らは異なった時に同じ方法でインストールされました。
誰にも提案はありますか?ハマった!
コマンドライン拡張機能が有効になっていないようです。 forループを実行する前に 'setlocal enableextensions'を試してください。 – Stefan
ありがとうございますが、私はそれを試みました(errorlevelは0です)。 –