2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« ファイル名に=;,や全角空白を含むファイルをバッチファイルにドロップすると、ファイル名が分割される。(その2) | トップページ | TypeName() と VarType() の違いに注意。 »

2008年4月16日 (水)

ファイル名に=;,や全角空白を含むファイルをバッチファイルにドロップすると、ファイル名が分割される。(その3)

関連付けでなく、個々のバッチファイル側で回避することもできます。

@if(0)==(0) ECHO OFF
SET ARGS=%*
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "delims=" %%a IN ('CScript.exe //NoLogo //E:JScript "%~f0" !ARGS!') DO (
ENDLOCAL
CALL :SUB %%a
)
GOTO :EOF
:SUB
ECHO ここから
ECHO %%1=%1
ECHO %%2=%2
ECHO %%3=%3
ECHO ここまでに元のバッチファイルを入れます。
GOTO :EOF
@end
var args=new Array();
for(var k=0;k<WScript.Arguments.Count();k++){
var arg=WScript.Arguments.Item(k);
args.push(arg.search(/[  =;, ]/)+1?'"'+arg+'"':arg);}
WScript.Echo(args.join(' '));

※2013-06-29修正。読者指摘により、ファイル名に!を含むケースに対応。

« ファイル名に=;,や全角空白を含むファイルをバッチファイルにドロップすると、ファイル名が分割される。(その2) | トップページ | TypeName() と VarType() の違いに注意。 »