- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
542 :デフォルトの名無しさん[sage]:2018/05/17(木) 00:05:45.00 ID:TsNh8oQN - ああ分かった リテラルが 1^2 の場合ね 失礼
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
543 :デフォルトの名無しさん[sage]:2018/05/17(木) 00:31:20.52 ID:TsNh8oQN - call :check_num "%~1" result
にでもすりゃいいのかな こういうのは考え出すときりが無い様な気がするが
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
545 :デフォルトの名無しさん[sage]:2018/05/17(木) 06:56:29.62 ID:TsNh8oQN - eof= を消すと副作用があるし
どっちにしろ引数に ; があると誤動作するみたいだし こりゃあもうお手上げだな
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
546 :デフォルトの名無しさん[sage]:2018/05/17(木) 07:02:08.36 ID:TsNh8oQN - あ、eol= だった
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
550 :デフォルトの名無しさん[sage]:2018/05/17(木) 10:17:41.58 ID:TsNh8oQN - どんな方法でも良いから
引数の中に " とか ; が入ってても 正しく動作するのを頼む というのは絶対に無理なのかね
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
551 :デフォルトの名無しさん[sage]:2018/05/17(木) 11:47:23.61 ID:TsNh8oQN - >>550が不可ならそれを前提条件にするしかないだろ
ちょっと直してみた @echo off call :check_num "%~1" result echo %result% & pause & goto :eof :check_num setlocal set "b=FALSE" & if "%~1"=="" goto x for /f "delims=-+0123456789 tokens=*" %%i in ("%~1") do ( set "a=%%i" & if not defined a set "b=TRUE" ) :x endlocal & set "%2=%b%"
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
552 :デフォルトの名無しさん[sage]:2018/05/17(木) 17:15:43.43 ID:TsNh8oQN - とりあえず引数の " と ; の対策らしきもの
引数は行末まで1個のみ もう嫌気がさしたのでこれ以上はやめとく @echo off set a=%*" set /a b=0,c=0 setlocal enabledelayedexpansion :x set d="!a:~%b%,1!!a:~%b%,1!" if !d!=="" goto y if !d!=="""" set /a c+=1 if !d!==";;" set /a c+=1 set /a b+=1 & goto x :y endlocal & set c=%c% set "e=FALSE" & if %c% gtr 1 (goto z) else set "a=%*" for /f "delims=-+0123456789 tokens=*" %%i in ("%a%") do ( set "a=%%i" & if not defined a set "e=TRUE" ) :z echo %e%
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
555 :デフォルトの名無しさん[sage]:2018/05/17(木) 18:05:24.87 ID:TsNh8oQN - >554.bat 1"&ab"
'ab""' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 TRUE
|
- 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
557 :デフォルトの名無しさん[sage]:2018/05/17(木) 21:53:53.10 ID:TsNh8oQN - >>555
554.bat とあるが実際は >>553 のバッチ処理結果です バッチ2行目の set コマンドの、左側の " が悪さをしてる 当然、下にあるチェック文もそのままでは使えない 引数 1;2 は実際には2つに分かれるが これで TRUE を返すのは違和感あるので >>552 では FALSE を返している 2つの %* を %1 にすれば TRUE を返せる筈
|