批处理脚本不再有效?

Dav*_* W. 2 windows console cvsnt batch-file

我正在使用Ant,Java和CVSNT在控制台窗口中的命令行上工作.(Unix极客被迫生活在Windows世界中)

当我运行cvsnt命令时,批处理脚本不再起作用.这包括我使用的几个命令,包括antvim.

我可以打开一个新的控制台窗口,在那个窗口中,一切都很好,所以它必须是关于该控制台窗口中特定环境的东西,并且只要我在cvsnt中执行某些操作就会发生这种情况.

有任何想法吗?我应该找什么?

Sim*_* G. 6

我今天遇到了同样的问题.问题是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

>
Run Code Online (Sandbox Code Playgroud)

因此,尽管代码页明显不受影响,但重置它会恢复.bat文件的功能.

若要解决此问题,我因此使用这样的脚本:

@echo off
(
chcp 850 > NUL
"C:\Program Files\CVSNT\cvs.exe" %*
chcp 850 > NUL
)
Run Code Online (Sandbox Code Playgroud)

并通过它调用cvs.如果有人可以评论为什么这个代码页行为正在发生,我最感兴趣的是.