[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
572: デフォルトの名無しさん [sage] 2018/07/08(日) 19:34:33.35 ID:ayaOLpVg >>569 forじゃないけど、こんなんじゃあかんの? :loop echo %~nx1 shift if not "%~1"=="" goto :loop http://mevius.5ch.net/test/read.cgi/tech/1489207631/572
573: デフォルトの名無しさん [sage] 2018/07/08(日) 20:03:03.50 ID:noo5aK3K aaa bbb.txtとかa&b.txtみたいなのは%1等で受け取っても切れるね cmdの独特なコマンドラインパース処理が悪いともいえるし 半角スペース含まれてないのをいいことにD&D時にダブルクォートで囲わないOS側が悪いともいえるし困ったもんだな D&Dで処理するのはスクリプト言語使った方がいいかもしれん http://mevius.5ch.net/test/read.cgi/tech/1489207631/573
574: デフォルトの名無しさん [sage] 2018/07/08(日) 20:56:02.67 ID:O/180cHX いまだにスペース問題抱えてるとは思わないよな もう10数年以上前からあるのに http://mevius.5ch.net/test/read.cgi/tech/1489207631/574
575: デフォルトの名無しさん [sage] 2018/07/08(日) 20:57:49.35 ID:3ARFRdhF こういうの直すと互換性の問題でも起きるの? http://mevius.5ch.net/test/read.cgi/tech/1489207631/575
576: デフォルトの名無しさん [sage] 2018/07/08(日) 21:45:56.33 ID:PKG5RTYD >571 こうで良くないかなぁ?/d を使うパターン。 for /d %%f in (%*) do ( echo %%~nxf ) >>575 そういう仕様に依存している過去のコードの動作に影響が出るのさ。 そういうコードは今までずっと企業内で使われている。 作者不詳のまま… http://mevius.5ch.net/test/read.cgi/tech/1489207631/576
577: デフォルトの名無しさん [sage] 2018/07/08(日) 21:49:43.77 ID:PKG5RTYD ごめん、/d でも全角はアウトですた。 わけわからーん http://mevius.5ch.net/test/read.cgi/tech/1489207631/577
578: デフォルトの名無しさん [sage] 2018/07/08(日) 22:24:06.32 ID:vrRjc8/F 昔、どこかのサイトで似たようなの見たけど %* を加工して解決しようとしてたが 数十行もあったようなw でも、俺が動作確認したら全然ダメだったし http://mevius.5ch.net/test/read.cgi/tech/1489207631/578
579: デフォルトの名無しさん [sage] 2018/07/08(日) 22:50:01.23 ID:E+arm29j >>571 Windows 10 Home 1803 だけど全角空白も & も>>569で問題なく処理できるよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/579
580: デフォルトの名無しさん [sage] 2018/07/08(日) 22:57:56.95 ID:vrRjc8/F >>579 引数はフルパスだからな フォルダ名に半角スペースあるだろ http://mevius.5ch.net/test/read.cgi/tech/1489207631/580
581: デフォルトの名無しさん [sage] 2018/07/08(日) 23:16:12.53 ID:dDjh6KF7 >>569 for の代わりに forfiles を使うと ""付きファイル名なのでうまくいく(たぶん) http://mevius.5ch.net/test/read.cgi/tech/1489207631/581
582: デフォルトの名無しさん [sage] 2018/07/08(日) 23:36:45.60 ID:U6QPmMsx >>569 全角スペースを文字として扱うか、半角スペースと同じように扱うかについて、 cmdは中途半端な扱いをしているようだしな。 フルパスに半角スペースがあると、全角スペースは文字として扱われるが、 フルパスに半角スペースがないと、全角スペースは半角スペースと同じ扱いになる。 しかもクォートしただけでは対処できないという困ったことに。 対処方法としては、フルパスの何処かに半角スペースを入れてクォートするだけ。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/582
583: デフォルトの名無しさん [sage] 2018/07/08(日) 23:38:41.06 ID:PKG5RTYD >>579 Win10 Pro 1803 64bit。 全角がアウト。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/583
584: デフォルトの名無しさん [sage] 2018/07/08(日) 23:39:37.04 ID:O/180cHX 昔からある不具合なんだから互換性も糞もない http://mevius.5ch.net/test/read.cgi/tech/1489207631/584
585: デフォルトの名無しさん [sage] 2018/07/08(日) 23:53:08.78 ID:E+arm29j >>580, >>583 ああなるほど すまん、ボケてたわ http://mevius.5ch.net/test/read.cgi/tech/1489207631/585
586: デフォルトの名無しさん [sage] 2018/07/09(月) 00:39:27.28 ID:CF6LQR6B 全角空白の場合、ダブルクォーテーションで括られないのに、引数の区切り記号として取り扱われるってことか 間に、ダブルクォーテーションで括る操作をかませばいいか @if (0)==(0) echo off set arg=%* for /f "delims=" %%f in ('cscript //nologo /e:jscript "%~f0" %%arg%%') do echo %%f pause goto :eof @end for(var i=0,arg=WScript.arguments;i<arg.length;i++) WScript.Echo('"'+arg(i)+'"'); http://mevius.5ch.net/test/read.cgi/tech/1489207631/586
587: デフォルトの名無しさん [sage] 2018/07/09(月) 00:46:29.65 ID:CF6LQR6B いや引数を各行に分解したから、括る必要もないな 最終行訂正 for(var i=0,arg=WScript.arguments;i<arg.length;i++) WScript.Echo(arg(i)); http://mevius.5ch.net/test/read.cgi/tech/1489207631/587
588: デフォルトの名無しさん [sage] 2018/07/09(月) 01:05:14.62 ID:CF6LQR6B やっぱり括ってたほうがトラブルが少ないかも あと、半角空白が無いと括られないから、 a^b.txt とかはBATに入ってくる時点でもうダメだな %CMDCMDLINE% とか見てやれば可能だけど http://mevius.5ch.net/test/read.cgi/tech/1489207631/588
589: デフォルトの名無しさん [sage] 2018/07/09(月) 01:10:51.13 ID:CF6LQR6B 結論としては、色々苦労して対応するより、 必ず半角空白をいれたフォルダにファイルを置くようにしたほうがいいね http://mevius.5ch.net/test/read.cgi/tech/1489207631/589
590: デフォルトの名無しさん [sage] 2018/07/09(月) 01:30:40.02 ID:M0pRa/sz これらは""で括れば問題ない a=b.txt a;b.txt a^b.txt http://mevius.5ch.net/test/read.cgi/tech/1489207631/590
591: デフォルトの名無しさん [sage] 2018/07/09(月) 01:50:11.67 ID:M0pRa/sz これは""で括ってもechoで化ける %cd%.txt http://mevius.5ch.net/test/read.cgi/tech/1489207631/591
592: デフォルトの名無しさん [sage] 2018/07/09(月) 21:52:59.96 ID:JZ4qv3b5 俺はバッチスクリプトを生成するスクリプトをPerlだのPhysonで書くときは ダブルクォートで囲わずに全部キャレットでエスケープしてる。 今回の件は %* が勝手に全角空白で区切る仕様が駄目なんだけど… スクリプトから呼ぶ場合には何とかなっても、D&Dの時点で引数を加工できないってとこに問題がある。 shift しても無駄、っていうところ…。 解決策…、ある??俺は思いつかない…。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/592
593: デフォルトの名無しさん [] 2018/07/09(月) 22:17:13.68 ID:FlHlLFRn nbspでもなるな http://mevius.5ch.net/test/read.cgi/tech/1489207631/593
594: デフォルトの名無しさん [sage] 2018/07/09(月) 22:21:09.09 ID:CF6LQR6B a&b.txtとかはcmd. exeに入る前に対処しないとね BAT以外の別スクリプトにD&Dして、そっちで引数を加工後にBATを呼んでもらうようにするぐらい http://mevius.5ch.net/test/read.cgi/tech/1489207631/594
595: デフォルトの名無しさん [sage] 2018/07/09(月) 22:25:10.86 ID:CF6LQR6B ところでcmdスレなのに、なんでcmd. exeがNGワードなんだよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/595
596: デフォルトの名無しさん [sage] 2018/07/09(月) 22:54:28.83 ID:XFrzb5uR 確認してないけどcloudflareがコマンドインジェクション対策で弾いてんるんじゃないの ls -lとかもできなかったはずだし http://mevius.5ch.net/test/read.cgi/tech/1489207631/596
597: デフォルトの名無しさん [sage] 2018/07/10(火) 07:31:20.48 ID:LbQkaO6y Ruby, PowerShell を使った方が良い バグるのは低品質だし、時間の無駄 http://mevius.5ch.net/test/read.cgi/tech/1489207631/597
598: デフォルトの名無しさん [sage] 2018/07/11(水) 20:28:10.61 ID:mCCOIiej >>597 Ruby は実行環境のインスコがいる。 PoerShell はD&Dできない。 それ以前に、特殊な世界ではいまだに XP が現役だったりする。 Win7SP1以降のアップデートパッチを1個でも当てたら動作保証しませんなどというフザけた業務システムも実在する。 レジストリを汚すインスコは駄目だけど、ネイティブコンパイルしたコマンドをコピーして使う分にはおk、てな環境もある。 とりあえず、スクリプトを使用した D&D のファイルパス問題回避の最大公約数的解決は VBScript しかないんじゃないかな。 (さすがに Win9X な環境はもうないだろう…と思うけど) 使える環境なら検討した方がいいけど、安易な「○○使えばいい」という回答は頭が悪すぎる。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/598
599: デフォルトの名無しさん [sage] 2018/07/11(水) 21:11:59.69 ID:/R7esjNT なら環境毎に勝手に使えばいいんだから最大公約数なんて決める必要ないのでは http://mevius.5ch.net/test/read.cgi/tech/1489207631/599
600: デフォルトの名無しさん [sage] 2018/07/12(木) 01:03:34.20 ID:MfQE+JgU NTも現役だよボケ http://mevius.5ch.net/test/read.cgi/tech/1489207631/600
601: デフォルトの名無しさん [sage] 2018/07/12(木) 11:56:39.69 ID:72SuVZq5 それ以前に、DOS自体が、現e(ry http://mevius.5ch.net/test/read.cgi/tech/1489207631/601
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 401 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s