[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
524: デフォルトの名無しさん [sage] 2018/05/05(土) 00:20:09.03 ID:uOR+hZGm dcなら 値1 値2 : 値n 16of http://mevius.5ch.net/test/read.cgi/tech/1489207631/524
525: デフォルトの名無しさん [sage] 2018/05/05(土) 04:13:57.15 ID:nqyvYHZY >>520 gcalc面白いね こんな書き方が通っちゃうんだー --bat-- @echo off gcalc -d config(\"tab\",0), base(16), <in.txt; quit; rem gcalc -d config(\"tab\",0), base2(16), <in.txt; quit; --in.txt--- 1111111111 2222222222 3333333333 http://mevius.5ch.net/test/read.cgi/tech/1489207631/525
526: デフォルトの名無しさん [sage] 2018/05/14(月) 16:02:14.00 ID:vCNzBA31 %1や環境変数が数字だけか判定するのが面倒 ぐぐってやりかたはわかったが、もっとすっきりくっきりな方法はないですか 正規表現だと ^\d+$ でおわりなのに set W=x%1 set W=%W:0=% set W=%W:1=% set W=%W:2=% set W=%W:3=% set W=%W:4=% set W=%W:5=% set W=%W:6=% set W=%W:7=% set W=%W:8=% set W=%W:9=% if '%W%=='x echo 数字 http://mevius.5ch.net/test/read.cgi/tech/1489207631/526
527: デフォルトの名無しさん [sage] 2018/05/14(月) 16:37:10.19 ID:qPzKX5Gg set X=100 echo %X%|findstr /X "[0-9][0-9]*"&&echo 数字 こうとか http://mevius.5ch.net/test/read.cgi/tech/1489207631/527
528: デフォルトの名無しさん [sage] 2018/05/15(火) 01:55:36.53 ID:VsPlEm8N @rem 2147483648 以上の数は扱えないため、大きい値が入る条件には不向き。 set "W=%1" set DUMMY=a set /A "DUMMY=W*1" if not "%W%"=="%DUMMY%" (echo 数字以外) else echo 数字のみ http://mevius.5ch.net/test/read.cgi/tech/1489207631/528
529: デフォルトの名無しさん [sage] 2018/05/15(火) 15:39:31.76 ID:Aaz/hbaw >>528 -123 数字のみ http://mevius.5ch.net/test/read.cgi/tech/1489207631/529
530: デフォルトの名無しさん [sage] 2018/05/15(火) 15:47:52.58 ID:Aaz/hbaw 0001 数字以外 http://mevius.5ch.net/test/read.cgi/tech/1489207631/530
531: デフォルトの名無しさん [sage] 2018/05/16(水) 00:05:23.47 ID:vNnFvDtx ありがとうございます >>527 findstって正規表現のようなことができるのですね、知らなかったです >>528 英字だけ、数字だけだといいのですが、英数字混在文字列でエラーになりました *1 の代わりに +0も同じでした http://mevius.5ch.net/test/read.cgi/tech/1489207631/531
532: デフォルトの名無しさん [sage] 2018/05/16(水) 03:54:43.21 ID:Hrg3NbAG @echo off call :check_num %1 result echo %result% pause goto :eof :check_num if "%~1"=="" set "b=FALSE" & goto :eof for /f "delims=-+0123456789 tokens=* eol=" %%i in ("%~1") do ( set "a=%%i" if defined a (set "b=FALSE") else set "b=TRUE" ) endlocal & set "%2=%b%" http://mevius.5ch.net/test/read.cgi/tech/1489207631/532
533: デフォルトの名無しさん [sage] 2018/05/16(水) 04:03:04.73 ID:Hrg3NbAG >>532 7行目の :check_num の次の行に setlocal を追加願います http://mevius.5ch.net/test/read.cgi/tech/1489207631/533
534: デフォルトの名無しさん [sage] 2018/05/16(水) 04:13:36.97 ID:Hrg3NbAG なんか間違ってたので書き直した @echo off call :check_num %1 result echo %result% pause goto :eof :check_num setlocal if "%~1"=="" set "b=FALSE" & goto x for /f "delims=-+0123456789 tokens=* eol=" %%i in ("%~1") do ( set "a=%%i" if defined a (set "b=FALSE") else set "b=TRUE" ) :x endlocal & set "%2=%b%" http://mevius.5ch.net/test/read.
cgi/tech/1489207631/534
535: デフォルトの名無しさん [sage] 2018/05/16(水) 16:36:26.52 ID:VQztSlVV 1"2 result"=="" set "b=FALSE" & goto x の使い方が誤っています。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/535
536: デフォルトの名無しさん [sage] 2018/05/16(水) 16:48:32.10 ID:VQztSlVV "1" TRUE 1"2" ECHO は <OFF> です。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/536
537: デフォルトの名無しさん [sage] 2018/05/16(水) 21:51:04.87 ID:Hrg3NbAG 引数の中の " の対策すると大変なんで、やりたくない やりたい人、どうぞ http://mevius.5ch.net/test/read.cgi/tech/1489207631/537
538: デフォルトの名無しさん [sage] 2018/05/16(水) 22:31:00.96 ID:VQztSlVV 1^2 1|2 1&2 http://mevius.5ch.net/test/read.cgi/tech/1489207631/538
539: デフォルトの名無しさん [sage] 2018/05/16(水) 23:12:48.91 ID:Hrg3NbAG 引数の中に cmd で特別な意味を持つ文字が有る場合は左に ^ を付けるか 全体を " で囲むしかないよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/539
540: デフォルトの名無しさん [sage] 2018/05/16(水) 23:15:29.43 ID:VQztSlVV >>538は>>527宛て >>534的には、1^^2 http://mevius.5ch.net/test/read.cgi/tech/1489207631/540
541: デフォルトの名無しさん [sage] 2018/05/16(水) 23:50:08.13 ID:Hrg3NbAG FALSE になるようだが何か問題があるの? http://mevius.5ch.net/test/read.cgi/tech/1489207631/541
542: デフォルトの名無しさん [sage] 2018/05/17(木) 00:05:45.00 ID:TsNh8oQN ああ分かった リテラルが 1^2 の場合ね 失礼 http://mevius.5ch.net/test/read.cgi/tech/1489207631/542
543: デフォルトの名無しさん [sage] 2018/05/17(木) 00:31:20.52 ID:TsNh8oQN call :check_num "%~1" result にでもすりゃいいのかな こういうのは考え出すときりが無い様な気がするが http://mevius.5ch.net/test/read.cgi/tech/1489207631/543
544: デフォルトの名無しさん [sage] 2018/05/17(木) 01:18:19.29 ID:zVFG07SK 分かってるのかどうか知らないが、 1"2"が、ECHO は <OFF> です。になるのは、eol="が効いてるため http://mevius.5ch.net/test/read.cgi/tech/1489207631/544
545: デフォルトの名無しさん [sage] 2018/05/17(木) 06:56:29.62 ID:TsNh8oQN eof= を消すと副作用があるし どっちにしろ引数に ; があると誤動作するみたいだし こりゃあもうお手上げだな http://mevius.5ch.net/test/read.cgi/tech/1489207631/545
546: デフォルトの名無しさん [sage] 2018/05/17(木) 07:02:08.36 ID:TsNh8oQN あ、eol= だった http://mevius.5ch.net/test/read.cgi/tech/1489207631/546
547: デフォルトの名無しさん [sage] 2018/05/17(木) 07:11:43.15 ID:pqvSuRzJ 質問者が「もっとすっきりくっきりな方法」と言ってるんだから複雑でトリッキーな方法は求められてなないだろう http://mevius.5ch.net/test/read.cgi/tech/1489207631/547
548: デフォルトの名無しさん [sage] 2018/05/17(木) 08:50:29.12 ID:zVFG07SK >>545 >>269-273 http://mevius.5ch.net/test/read.cgi/tech/1489207631/548
549: デフォルトの名無しさん [sage] 2018/05/17(木) 09:36:13.96 ID:cmWUEZX7 >>547 いつもそうなるけど、バッチじゃ諦めろ、が正解になってしまうよw http://mevius.5ch.net/test/read.cgi/tech/1489207631/549
550: デフォルトの名無しさん [sage] 2018/05/17(木) 10:17:41.58 ID:TsNh8oQN どんな方法でも良いから 引数の中に " とか ; が入ってても 正しく動作するのを頼む というのは絶対に無理なのかね http://mevius.5ch.net/test/read.cgi/tech/1489207631/550
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%&
quot; http://mevius.5ch.net/test/read.cgi/tech/1489207631/551
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) el
se set "a=%*" for /f "delims=-+0123456789 tokens=*" %%i in ("%a%") do ( set "a=%%i" & if not defined a set "e=TRUE" ) :z echo %e% http://mevius.5ch.net/test/read.cgi/tech/1489207631/552
553: デフォルトの名無しさん [sage] 2018/05/17(木) 17:16:28.81 ID:zVFG07SK >>550 @echo off set "arg1=%1" call :check_num arg1 result echo %result% & pause & goto :eof :check_num setlocal EnableDelayedExpansion set "b=FALSE" for /f "delims=0123456789 tokens=*" %%i in ("!%1!") do ( set "a=%%i" & if not defined a set "b=TRUE" ) :x endlocal & set "%2=%b%" goto :eof 引数に ; は指定できない(半角空白、カンマ、セミコロン、
=は引数の区切りを示すため) なお、遅延環境変数の展開を使わないでも以下のようなチェックで最初に弾けば可能 if "%arg1:"=%" equ "%arg1:"=”%" (echo ^"なし) else echo ^"あり http://mevius.5ch.net/test/read.cgi/tech/1489207631/553
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 449 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s