Command.com用バッチファイルをJSファイルにラップする。
Command.com用のバッチファイルをJSファイルにラッピングします。なんのこっちゃ?
拡張子.bat2jsを作成し、ファイルクラスjsfileに関連付けます。
この拡張子は、長いファイル名では、JSファイルとなり、短いファイル名では、Command.com用のバッチファイルになります。
バッチとして実行するときは、
Command.com /C 短いファイル名
で、実行します。
引数のないバッチファイル.bat2js
@if(0==0)WScript.Quit(new ActiveXObject('WScript.Shell').Run('command.com /c ' + new ActiveXObject('Scripting.FileSystemObject').GetFile(WScript.ScriptFullName).ShortPath,7,true));@else
echo %%0=%0
pause
:@end
引数のあるバッチファイル.bat2js
@if(0)==(0) ECHO OFF
echo %%0=%0
echo %%1=%1
pause
EXIT
@end
var args=new Array();args.push('command.com');args.push('/c');
args.push(new ActiveXObject('Scripting.FileSystemObject').GetFile(WScript.ScriptFullName).ShortPath);
for(var k=0;k<WScript.Arguments.Count();k++){
var arg=WScript.Arguments.Item(k);args.push(arg.indexOf(' ')+1?'"'+arg+'"':arg);}
new ActiveXObject('WScript.Shell').Run(args.join(' '),7);
ここでは、最小化ですが、コンソール入出力が必要なければ、非表示にも出来ます。
CMD.EXEは、短いファイル名を指定しても、長いファイル名に翻訳するため、使えません。