今日もまったく同じ問題がありました。問題は、cvs.exe がコード ページで何らかの処理を行うことです。何を説明することはできませんが、コード ページをリセットすると、bat ファイルが再び機能し始めます。
例はこれをより明確にするかもしれません(英国にいるため、私のデフォルトのコードページは850ですが、Windowsのデフォルトを437にすると同じことが起こります)
>echo @echo .bat files are working > test.bat
>test.bat
.bat files are working
>chcp
Active code page: 850
>cvs update
? test.bat
cvs update: Updating .
>test.bat
>chcp
Active code page: 850
>test.bat
>chcp 850
Active code page: 850
>test.bat
.bat files are working
>
そのため、コード ページは明らかに影響を受けていませんが、リセットすると .bat ファイルの機能が復元されます。
この問題を回避するために、次のようなスクリプトを使用しています。
@echo off
(
chcp 850 > NUL
"C:\Program Files\CVSNT\cvs.exe" %*
chcp 850 > NUL
)
それを介してcvsを呼び出します。このコード ページの動作が発生している理由について誰かがコメントできる場合は、知りたいと思います。