我写了个.bat文件,希望在VC中去调用执行它。但不知道是何缘故,程序里调用就是不执行,但我手工去双击那个.bat就能正常执行。我的rename.bat是这样的:@echo off
rename ..\1.txt 222.txt然后,这个.bat是放在我的VC工程目录下的Debug目录下,1.txt是放在上一级目录下。掉用方法:WinExec("rename.bat", SW_SHOWNORMAL);执行没有任何反应,但我把rename.bat换成notepad.exe却能正常打开记事本。我用ShellExecute方法调用也是没反应。不知道是何原因,是bat存放位置问题,还是别的问题,请指点!
rename ..\1.txt 222.txt然后,这个.bat是放在我的VC工程目录下的Debug目录下,1.txt是放在上一级目录下。掉用方法:WinExec("rename.bat", SW_SHOWNORMAL);执行没有任何反应,但我把rename.bat换成notepad.exe却能正常打开记事本。我用ShellExecute方法调用也是没反应。不知道是何原因,是bat存放位置问题,还是别的问题,请指点!
system("ren 1.txt 222.txt");这样使用的话,直接运行生成的EXE文件是可以修改成功的
WinExec("rename.bat", SW_SHOWNORMAL);这样的话保证EXE文件与bat文件同级,txt文件在上级,直接运行那个EXE也是可以修改的
内容ren a.txt b.txt
并将a.bat存储在 c:\
void CCmdDlg::OnDisk()
{
// TODO: Add your control notification handler code here
WinExec("c:\\re.bat", SW_HIDE);}
我的bat也放到了C盘根目录下,1.txt也放在C根目录下,我的bat内容是:
@echo off
ren 1.txt 222.txt直接双击.bat都是可以把那个文本改名过来的。
很奇怪,期待解答。
实在不行再试试WinExec("cmd.exe /c rename ..\\1.txt 222.txt > c:\\ret.txt", SW_SHOWNORMAL); 这样看下,输出信息在c:\ret.txt
并且不要用ide自带的功能启动exe,手动双击exe运行,否则路径会变
看来,原因就出现工程名的命名上。我重建了个工程,问题就都解决了。
谢谢各位!