- 【.cmd】 バッチファイルスクリプト %10 【.bat】
642 :デフォルトの名無しさん[sage]:2014/07/04(金) 18:37:49.81 ID:VbWz3yHz - >>640
どんな風にユーザーからフォルダ名を貰おうとしてるの? 普通はパラメタで指定して貰うんだろうが、その時点で完璧な対処は無理となる まあそこは目をつぶって一例を示すと(batの中にWSH(jscript)を埋め込んだ形だが) (パラメタの途中に"がある、a^bとかはダメ、a^&bや"a&b"や"a^b"ならOK) @if (0)==(0) echo off set parms= for /f %%i in ("%~1") do set parms=%%i if not defined parms (cscript //nologo //e:jscript "%~f0">tmp.txt) else ( for /f %%i in ("%~1") do cscript //nologo //e:jscript "%~f0" %%i>tmp.txt ) for /f %%i in (tmp.txt) do echo %%i if errorlevel 2 echo フォルダが指定されていません&goto :eof if errorlevel 1 echo 全角文字または^&^<^>%%^^が使用されています&goto :eof goto :eof @end var folder="", rc=0, sh, oFolder, args=WScript.Arguments; if(args.length<1) { sh = new ActiveXObject("Shell.Application"); oFolder = sh.BrowseForFolder(0, "フォルダ選択",0); if(oFolder==null) rc=2; else folder=oFolder.Items().Item().Path; } else { folder = args(0); } if (rc==0) {if(/[^\x00-\x7f]|[&<>%\^]/.test(folder)) rc=1;} sh = null; WScript.Echo("フォルダ名:"+folder); WScript.quit(rc)
|