実行ファイルからバッチファイルを作成、そのバッチファイルが実行できない
環境はWindowsXPPro+gccです
Cの実行ファイルにjavaファイルを引数で渡し
そのファイル名に合ったバッチファイルを作成するプログラムで
作成後エクスプローラからバッチファイルを実行しても
「指定されたデバイス、パス、またはファイルにアクセスできません。アクセス許可がない可能性があります。」
と出てバッチを実行できません
しかし、DOSを開き、そのパスまで行きバッチファイルを実行するか、
このバッチファイルをコピーし実行するときちんと実行されます。
なぜでしょうか?
なにかお気づきする点がありましたら指摘お願いします。
※文字数制限で宣言省いています
int main(int argc,char *argv[])
{
strcpy(fpath,argv[1]);
flen=strlen(fpath);
strncat(ftype,&fpath[flen-5],5);
if(strcmp(ftype,".java")!=0){
printf("Don'tjavafiletype!!\n");
printf("%s",ftype);
return0;
}
for(i=0;i<flen;i++){
if(fpath[i]=='\\'){
flast=i;
}
}
strncat(fname,&fpath[flast+1],flen-flast-6);
strncat(fpath2,fpath,flen-5-strlen(fname));
sprintf(html,"<html>\n"
"<body>\n"
"<appletcode=\"%s.class\" width=\"200\" height=\"200\"></applet>\n"
"</body>\n"
"</html>\n",fname);
sprintf(bat,"cd%s\n"
"javac %s.java\n"
"appletviewer %s.html\n",fpath2,fname,fname);
strcpy(fhtml,fpath2);
strcat(fhtml,fname);
strcat(fhtml,".html");
fn=fopen(fhtml,"w");
flen=strlen(html);
for(i=0;i<flen;i++){
fputc(html[i],fn);
}
fclose(fn);
strcpy(fbat,fpath2);
strcat(fbat,fname);
strcat(fbat,".bat");
fn2=fopen(fbat,"w");
flen=strlen(bat);
for(i=0;i<flen;i++){
fputc(bat[i],fn);
}
fclose(fn2);
return0;
}