[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
348: デフォルトの名無しさん [sage] 2018/02/05(月) 14:11:13.29 ID:ETXmgzVd やっと思い出したぞ裏技w 前後の端にダミーの二重引用符 ^" を付けるんだった >>347 のおかげで思い出したぜ set testExe="D:\a bc\test.exe" for /f "tokens=3" %%a in ('^"%testexe% --help ^| findstr "targetstr"^"') do ( http://mevius.5ch.net/test/read.cgi/tech/1489207631/348
349: デフォルトの名無しさん [sage] 2018/02/06(火) 13:18:25.70 ID:m2OYikdE >>347-348 できました。なるほど、そういう解釈がされるんですね・・・。 バッチってほんと思わぬところでひっかかりますよね。とても勉強になりました。ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/349
350: デフォルトの名無しさん [] 2018/02/07(水) 10:59:47.18 ID:fDqCQtuz VBでプログラムを作っているのですが、行き詰ってしまったので質問させていただきます。 バッチでiniファイルを読み込み、iniから取得したデータを格納した変数をVBのソース内で使いたいのですが可能ですか? exe形式での納品となるのでiniファイルの読み込みはどうしてもバッチ内で行いたいのです。 ちなみに処理の流れとしては、iniファイル読み込み→exeファイル実行となっています。 どなたかご教授ください。よろしくお願いいたします。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/350
351: デフォルトの名無しさん [sage] 2018/02/07(水) 11:12:08.68 ID:fDqCQtuz 申し訳ございません。 バッチでiniファイルを読み込み、iniから取得したデータを 格納した変数をVBのソース内で使いたいのですが可能ですか? × VBのソース内の変数に格納したいのですが可能ですか? ○ でした。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/351
352: デフォルトの名無しさん [sage] 2018/02/07(水) 11:43:25.21 ID:LQaGrglb バッチで、ini ファイルを読み込み、必要な値を取り出して、 それらを引数にして、exe を起動する そして、exe 内では、引数から読み込んだ値を使う http://mevius.5ch.net/test/read.cgi/tech/1489207631/352
353: デフォルトの名無しさん [] 2018/02/07(水) 12:00:38.62 ID:fDqCQtuz >>352 どう調べたらいいか分からず困っていたのですが、引数の取得で検索すればなんとかなりそうですね。 後は自分で調べてやってみます。ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/353
354: デフォルトの名無しさん [sage] 2018/02/07(水) 16:46:31.34 ID:EyPJd6fI バッチだと for文を使います 複雑なことをするのであればVBで直接読み込む方法もあります http://mevius.5ch.net/test/read.cgi/tech/1489207631/354
355: デフォルトの名無しさん [sage] 2018/02/10(土) 12:18:28.89 ID:/lSv2IRR バッチでiniファイルなんて読み込めるの? VBとかからGetPrivateProfileStringとかのAPIを使うんじゃないの? まあ力技で出来ないことはないんだろうけど自分が知らないだけで一般的なやり方というのがあるのかな? http://mevius.5ch.net/test/read.cgi/tech/1489207631/355
356: デフォルトの名無しさん [sage] 2018/02/10(土) 15:32:33.27 ID:K6TfvilX ググればふつうに出てくるようだが。(内容まではちゃんと見てない) http://mevius.5ch.net/test/read.cgi/tech/1489207631/356
357: デフォルトの名無しさん [sage] 2018/02/10(土) 16:29:19.90 ID:Sj+J5yD3 >>355 >>354の言うようにfor文を使う わかりやすいとは言えないし特殊文字が含まれると色々面倒なのでおすすめはしない http://mevius.5ch.net/test/read.cgi/tech/1489207631/357
358: デフォルトの名無しさん [sage] 2018/02/11(日) 19:16:43.96 ID:l1W9SMIH バッチファイルでファイル操作って一見ちゃんと動いてるように見えて穴だらけって場合が多いからやりたくないな wshで実装したりps辺りで既存のAPI呼び出す方がいい http://mevius.5ch.net/test/read.cgi/tech/1489207631/358
359: デフォルトの名無しさん [sage] 2018/02/11(日) 19:44:19.46 ID:+WWL4Di4 batで設定呼び出したい時はiniじゃなくてsetting.batに変数を直接記述してcallしてるわ このやり方も良いやり方なのかどうか分からんけど http://mevius.5ch.net/test/read.cgi/tech/1489207631/359
360: デフォルトの名無しさん [sage] 2018/02/12(月) 12:02:40.25 ID:OYWjTvif http://ascii.jp/elem/000/001/630/1630041/ Windows 10 RS4に追加された「curl」と「tar」コマンド って curl と tar が追加されるんだ PowerShell にも curl コマンド(エイリアス)があってややこしさが増すな でも、標準で使えるようになるのはバッチファイル使ってる身とすれば 嬉しくはある http://mevius.5ch.net/test/read.cgi/tech/1489207631/360
361: デフォルトの名無しさん [sage] 2018/02/12(月) 15:53:42.90 ID:BbO5lIMB もうRS4か RS3の不具合なんとかしてくれよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/361
362: デフォルトの名無しさん [] 2018/02/18(日) 16:07:03.48 ID:OqSvNe2j ファイル圧縮バッチを hta の画面にドロップするだけで実行するやつ作った https://medaka.5ch.net/test/read.cgi/csaloon/1518353191/843-846 ファイルをバッチファイルにドロップして引数受け取りは普通にあるけど ファイル名の一部を文字列としてドロップしても起動されないのでこういう方法を取った。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/362
363: デフォルトの名無しさん [sage] 2018/02/18(日) 16:25:37.39 ID:ZqWPhgUg >>360 Windows10 なら、WSL で、MS Store から、Ubuntu 16.04 LTS をダウンロードすれば、 curl, tar も入っている 他のLinux のコマンドも、一杯ある http://mevius.5ch.net/test/read.cgi/tech/1489207631/363
364: デフォルトの名無しさん [sage] 2018/02/18(日) 19:16:35.61 ID:yvQzNzLN >>363 それはバッチから使えるの? http://mevius.5ch.net/test/read.cgi/tech/1489207631/364
365: デフォルトの名無しさん [sage] 2018/02/18(日) 19:20:27.56 ID:F2O3xW/S 普通に使える ubuntu run curl --help http://mevius.5ch.net/test/read.cgi/tech/1489207631/365
366: デフォルトの名無しさん [sage] 2018/02/19(月) 04:53:30.17 ID:xIEc0S27 Linux(Ubuntu)側のbash、Windows側のPowerShell・コマンドプロンプトから、 相互のアプリ・コマンドを実行できる 相互のパイプも、つなげられる つまり、Linux側のbashは、Windows10 の1つのアプリになっている http://mevius.5ch.net/test/read.cgi/tech/1489207631/366
367: デフォルトの名無しさん [sage] 2018/02/19(月) 08:14:36.88 ID:2cNNs3G6 > Ubuntu 16.04 LTS をダウンロードすれば、 この手の前提条件が無いことがバッチのメリットなのに... http://mevius.5ch.net/test/read.cgi/tech/1489207631/367
368: デフォルトの名無しさん [sage] 2018/02/19(月) 22:58:00.92 ID:oh22XJYs >>363 Web開発テスト用の範囲を超えてない。 当のMSが「運用には使ってくれるな」つってるのによ。 お前馬鹿か?馬鹿だろ。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/368
369: デフォルトの名無しさん [sage] 2018/02/19(月) 23:41:31.81 ID:9tX9GnHd なんでこの人「運用」とか言い出してんの? http://mevius.5ch.net/test/read.cgi/tech/1489207631/369
370: デフォルトの名無しさん [sage] 2018/02/19(月) 23:44:41.90 ID:uhfYTKrf >>368 WSLはウェブサービス開発で使って、 実際にそのウェブサービスを動かす(=運用)するのは ネイティブなLinuxの上だぞ。例えばAzure上のLinuxとか 運用に使ってくれるなっていうのは、WSL上でウェブサービスを動かして 実際に不特定の人にサービスを提供するなっていう意味だ http://mevius.5ch.net/test/read.cgi/tech/1489207631/370
371: デフォルトの名無しさん [] 2018/02/20(火) 00:06:58.45 ID:amqSspGZ WSL 上で、Webサーバーとかを常時接続させて運用できない まあ最初から、自分のデスクトップPC を外部につなげて、 そんなサービスをする奴は、居ないだろ http://mevius.5ch.net/test/read.cgi/tech/1489207631/371
372: デフォルトの名無しさん [sage] 2018/02/20(火) 00:08:38.09 ID:ZtM0s1po バッチで使うのは運用ではないと? http://mevius.5ch.net/test/read.cgi/tech/1489207631/372
373: デフォルトの名無しさん [sage] 2018/02/20(火) 00:13:22.58 ID:XC4KsyV/ >>370 端末のスタートアップスクリプトに使うのも用途外。 だから「使える」とか言うのは明らかに言い過ぎ。 お前馬鹿か?馬鹿だろ。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/373
374: デフォルトの名無しさん [sage] 2018/02/20(火) 00:40:00.47 ID:wdwe47Ke >>373 > 端末のスタートアップスクリプトに使うのも用途外。 端末のスタートアップスクリプトの話なんかしてないんだが、 何を言い出してるんだ? そもそも端末のスタートアップスクリプトの 意味わからねぇw >>372 運用っていうから悪いんだよ。 「一般ユーザーに対してのウェブサービスの提供」 MSが使うなって言ってるのはこれだけだよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/374
375: デフォルトの名無しさん [sage] 2018/02/20(火) 00:43:54.06 ID:wdwe47Ke うん、ちゃんとFAQに書いてあったね https://docs.microsoft.com/en-us/windows/wsl/faq > Also, even though you will be able to run many popular server applications (e.g. Redis), > we do not recommend WSL for server scenarios ? Microsoft offers a > variety of solutions for running production Ubuntu workloads in Azure, Hyper-V, and Docker. サーバーアプリケーションを実行できるが、サーバーとしてのシナリオは推奨してないと http://mevius.5ch.net/test/read.cgi/tech/1489207631/375
376: デフォルトの名無しさん [sage] 2018/02/20(火) 00:46:37.66 ID:wdwe47Ke もう一つ、誰のためのものですか?という質問には > Who is this for? > This is primarily a tool for developers -- > especially web developers and those who work on or with open source projects. 第一に開発者、特にウェブ開発者やオープンソースプロジェクトを行ってる人 > This allows those who want/need to use Bash, common Linux tools (sed, awk, etc.) and > many Linux-first tools (Ruby, Python, etc.) to use their toolchain on Windows. bashや多くのLinuxツールや言語を使いたい人のためのものと http://mevius.5ch.net/test/read.cgi/tech/1489207631/376
377: デフォルトの名無しさん [sage] 2018/02/20(火) 00:57:48.56 ID:amqSspGZ Windows のコマンドプロンプトから、 wsl bash -c "echo 'hello'" 出力結果 : hello これぐらいのLinux の起動・実行・終了は、1秒! 定時処理ぐらい楽勝 サーバーみたいに常時実行しなければ大丈夫 http://mevius.5ch.net/test/read.cgi/tech/1489207631/377
378: デフォルトの名無しさん [sage] 2018/02/20(火) 01:27:38.14 ID:wdwe47Ke >>377 wsl.exeを使うなら bash -c はいらないぞ wsl echo hello でよい wsl echo --help と wsl /bin/echo --help の実行結果が違うから wslの中ではbash上で動いているっぽい wsl ps axfu やってもbashいないんだけどな まあ詳しい人に聞けば、そこら辺の動きは知ってるだろう。 あと、別にLinuxは起動してるわけじゃないのでLinuxの起動と書かれると違和感がある。 WSLはLinuxカーネルを模したサブシステム http://mevius.5ch.net/test/read.cgi/tech/1489207631/378
379: 377 [sage] 2018/02/20(火) 01:41:53.13 ID:amqSspGZ Windows のコマンドプロンプトで、 >where wsl C:\Windows\System32\wsl.exe >where ubuntu C:\Users\ユーザー名\AppData\Local\Microsoft\WindowsApps\ubuntu.exe wsl, ubuntu(Linux), bash の関係がよくわからない 漏れのノートPC は、i3、メモリ8GB、SSD だけど、 Windows10 の単なるアプリだから、起動・実行・終了で、1秒ほど WSLは、もう正規版だし、単なるアプリとして使う分には、問題ないだろ http://mevius.5ch.net/test/read.cgi/tech/1489207631/379
380: 377 [sage] 2018/02/20(火) 01:44:26.24 ID:amqSspGZ 書き忘れた Windows のコマンドプロンプトで、 >where bash C:\Windows\System32\bash.exe http://mevius.5ch.net/test/read.cgi/tech/1489207631/380
381: 377 [sage] 2018/02/20(火) 01:53:46.64 ID:amqSspGZ Windows のコマンドプロンプトで、 >wsl echo hello >ubuntu -c "echo hello" >bash -c "echo hello" これらは皆、hello が出力されるけど、書き方が異なる wsl では、echo がサブコマンドになっているのかも http://mevius.5ch.net/test/read.cgi/tech/1489207631/381
382: デフォルトの名無しさん [sage] 2018/02/20(火) 01:58:14.32 ID:wdwe47Ke >>379 俺もちゃんと調べたわけじゃないけど、 開発の歴史からすると、 最初はbash on ubuntu on windowsという扱いで bash.exeでUbuntu上のbashが起動できる(おまけでLinuxコマンドも使えるよ!)という扱いだった。 このbashが起動できるという仕組みを提供しているものの名前がWindows Subsystem for Linuxだったわけだが 開発が継続しLinuxカーネルとの互換性があがってもうbashだけが起動するもんじゃないよねってことで Windows Subsystem for Linuxの略であるwslと呼ばれるようになり。 wsl.exeができた(おそらくbash -c "コマンド" と面倒な書き方をしなくて良いラッパー) それと前後して、ubuntuだけじゃなくopenSUSEやFedoraも動くよ!(いやFedoraまだリリースされてないんだが) ということになり、bash.exeやwsl.exeで起動するのはどっちのディストリよ? ってことでそれを切り替えることができるwslconfig.exeができた。 また直接wslconfig.exeの設定によらず、ubuntuやopensuseを直接起動するための ubuntu.exe やopensuse-42.exe が出来た。 こんな所だと思う http://mevius.5ch.net/test/read.cgi/tech/1489207631/382
383: デフォルトの名無しさん [sage] 2018/02/20(火) 02:00:13.61 ID:ZtM0s1po なんでバッチスレでパソコン博士がWSLでイキってるの? http://mevius.5ch.net/test/read.cgi/tech/1489207631/383
384: デフォルトの名無しさん [sage] 2018/02/20(火) 02:01:02.04 ID:wdwe47Ke >>381 ubuntu /?をするとわかるが、 ubuntu run echo helloが正しい ubuntu.exeもwsl.exeもbash.exeもパラメータの扱いが違うだけで ディストリ上のbashを実行していることは確かなようだ http://mevius.5ch.net/test/read.cgi/tech/1489207631/384
385: デフォルトの名無しさん [sage] 2018/02/20(火) 02:01:43.71 ID:wdwe47Ke >>383 Windows 10において、バッチファイルでWSLと連携するのは 当たり前の話になってきているから http://mevius.5ch.net/test/read.cgi/tech/1489207631/385
386: デフォルトの名無しさん [sage] 2018/02/20(火) 02:04:18.90 ID:wdwe47Ke ubuntuは Usage: <no args> - Launches the distro's default behavior. By default, this launches your default shell. と書いてあるから、bashじゃなくてデフォルトシェルが呼び出されるのかも。 うーん、どれを使うのが良い(汎用的)なのだろう? http://mevius.5ch.net/test/read.cgi/tech/1489207631/386
387: 377 [sage] 2018/02/20(火) 02:51:43.01 ID:amqSspGZ wsl(Linux のbash)・PowerShell・コマンドプロンプトの3つが、 パイプでもつなげられるし、シームレスになってきて、CUI が統合されてきているから、 個別の話よりも、3つのCUI をパイプでどうつなげるかの方に、 話の焦点が移ってきている http://mevius.5ch.net/test/read.cgi/tech/1489207631/387
388: 377 [sage] 2018/02/20(火) 03:10:41.01 ID:amqSspGZ bash は、C:\Windows\System32\bash.exe を起動する ubuntu は、bash, zsh など、自分がデフォルトに設定した、シェルを起動する。 環境変数、$SHELL >wsl echo $SHELL /bin/bash wsl コマンドが、ubuntu, open suse など、 自分がデフォルトに設定した、Linux を起動 >wslconfig /list Windows Subsystem for Linux ディストリビューション: Ubuntu (既定) 推測で書いたけど、普段は、wsl を使うと良いかも http://mevius.5ch.net/test/read.cgi/tech/1489207631/388
389: デフォルトの名無しさん [sage] 2018/02/20(火) 06:46:25.63 ID:+0IlbXev >>383 オモチャ買ってもらった子供が「見て見てこれすごいんだよー」って言ってるような感じ 暖かく見守ってやれ http://mevius.5ch.net/test/read.cgi/tech/1489207631/389
390: デフォルトの名無しさん [sage] 2018/02/20(火) 12:42:35.46 ID:ZtM0s1po >>389 WSL出た頃なら仕方が無いが... やっぱパソコン博士レベルだと今頃になってやっとおもちゃを見つける感じなのか。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/390
391: デフォルトの名無しさん [sage] 2018/02/20(火) 19:54:28.42 ID:+0IlbXev へへーん、ぼくなんてまえからもってるもんねー それはすごいねー w http://mevius.5ch.net/test/read.cgi/tech/1489207631/391
392: デフォルトの名無しさん [sage] 2018/02/20(火) 21:48:42.53 ID:BI5N21qv さすがにスレチだからもうやめとけと思うけど、WSLについて少し調べてみようと思うきっかけにはなったわ。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/392
393: デフォルトの名無しさん [sage] 2018/02/20(火) 22:56:06.68 ID:wdwe47Ke パソコン先生に恨みでもあるのかな? そんな話をしてもバッチファイルを書く上で 何の意味もないと思うんだが、話をしたいのだろうね http://mevius.5ch.net/test/read.cgi/tech/1489207631/393
394: デフォルトの名無しさん [sage] 2018/02/20(火) 23:00:35.05 ID:wdwe47Ke >>390 Bash on Ubuntu on Windowsは、早く使いたかったんで Inside Previewに変えてまで使ったよ。 GUIアプリには対応していないって書いてあったが仕組み上 GUIアプリ動くんじゃね?ってそこの頃はまだ情報が少なかったけど 実際に自分で試してxeyes は動いたーって2ちゃんねるに書いた記憶がある http://mevius.5ch.net/test/read.cgi/tech/1489207631/394
395: デフォルトの名無しさん [sage] 2018/02/20(火) 23:11:12.21 ID:BI5N21qv 自分語りとか余計なことをダラダラ書き連ねるから嫌われるんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/395
396: デフォルトの名無しさん [sage] 2018/02/20(火) 23:20:45.61 ID:wdwe47Ke 嫌うのは相手の問題だからどうしようもない 俺に対する勘違いは、俺の問題だから解決する必要がある http://mevius.5ch.net/test/read.cgi/tech/1489207631/396
397: デフォルトの名無しさん [sage] 2018/02/21(水) 02:19:50.48 ID:PXpce9sQ パソコン先生、怒りの連投きたー http://mevius.5ch.net/test/read.cgi/tech/1489207631/397
398: デフォルトの名無しさん [sage] 2018/02/21(水) 02:50:21.44 ID:1KGQWp4x 連続してね〜じゃんw http://mevius.5ch.net/test/read.cgi/tech/1489207631/398
399: デフォルトの名無しさん [sage] 2018/02/25(日) 16:07:21.04 ID:97AlcoLv 例えば「aaa」という名前のODBCの設定は以下のコマンド reg query HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\aaa を実行すると HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\aaa Driver REG_SZ C:\WINDOWS\system32\SQLSRV32.dll Server REG_SZ aaa Database REG_SZ aaaDB LastUser REG_SZ ***** Trusted_Connection REG_SZ Yes のように表示できますが この設定の接続先データベース(上記ではaaaDB)をコマンドで変更することは出来るのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/399
400: デフォルトの名無しさん [sage] 2018/02/25(日) 17:44:24.52 ID:f0GbsyKa reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\aaa /v Server /t REG_SZ /d bbbDB とかでだめなん http://mevius.5ch.net/test/read.cgi/tech/1489207631/400
401: 399 [sage] 2018/02/25(日) 19:41:52.11 ID:97AlcoLv >>400 「/v Server」は「/v Database」の間違いですよね? これでバッチリいけました。ありがとうございます! http://mevius.5ch.net/test/read.cgi/tech/1489207631/401
402: デフォルトの名無しさん [sage] 2018/02/28(水) 10:04:11.85 ID:xTKxXp1v windows10 のコマンドプロンプトの、文字色を変えるエスケープシーケンスで、 prompt ^[[1;36m[$d$s$t$h$h$h] ^[[1;33m%USERNAME% ^[[37m$p$_$g$s prompt $e[1;36m[$d$s$t$h$h$h] $e[1;33m%COMPUTERNAME% $e[37m$p$_$g$s echo ^[[1;36mバッチファイル^[[37m は動作しますが echo $e[1;36mスクリプト$e[37m だと駄目でず。 ( ^[ は、CTRL+[ で入力する制御文字(\x1B)) echo で有効な「$e」の様な入力方法は有りますか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/402
403: 402 [sage] 2018/02/28(水) 10:18:01.40 ID:xTKxXp1v >>402 自己解決しました http://mevius.5ch.net/test/read.cgi/tech/1489207631/403
404: デフォルトの名無しさん [] 2018/03/16(金) 22:05:15.90 ID:HEHaQcsS バッチファイルで 空行を除く最終行にhogeって文字がなかったら追加して改行 -- hogeとかになってたら削除してhoge追記して改行 って事をやりたいんですけどどうやったらできるかおせーてください http://mevius.5ch.net/test/read.cgi/tech/1489207631/404
405: デフォルトの名無しさん [sage] 2018/03/17(土) 05:37:29.93 ID:nxO/ldT7 Ruby で作った require 'stringio' ary = [] File.open(ARGV[0]) do |io| text = io.read text.rstrip! # 末尾の連続した空白を、すべて削除する sio = StringIO.new text ary = sio.readlines # 全行を配列に読み込む if ary[-1] == '-- hoge' ary[-1] = "hoge\n" elsif /hoge/ !~ ary[-1] # hoge を含まない ary[-1] += "hoge\n" else return end end # 一旦ファイルを削除してから、書き込む File.open(ARGV[0], 'w') { |io| io.write ary.join } http://mevius.5ch.net/test/read.cgi/tech/1489207631/405
406: デフォルトの名無しさん [] 2018/03/17(土) 12:51:31.78 ID:HNxDhnRb >>405 あのーバッチって聞いてるのにrubyのスクリプト出されても困るんですけど http://mevius.5ch.net/test/read.cgi/tech/1489207631/406
407: デフォルトの名無しさん [sage] 2018/03/17(土) 13:17:48.14 ID:FI/uI0vX やらなくても言い余計なことをして場を混乱させる人って必ずいるよね http://mevius.5ch.net/test/read.cgi/tech/1489207631/407
408: デフォルトの名無しさん [sage] 2018/03/17(土) 13:29:47.44 ID:Y0/A+N6A ルビ厨の相手するなよ... http://mevius.5ch.net/test/read.cgi/tech/1489207631/408
409: デフォルトの名無しさん [sage] 2018/03/17(土) 13:33:32.46 ID:T/uji2Bj ロジック真似すればいいだけじゃん 作ってくれじゃなくて教えてくれなんだから Lispで回答されて読めないのは理解できるが 上のRubyくらいなら何の問題もないだろ http://mevius.5ch.net/test/read.cgi/tech/1489207631/409
410: デフォルトの名無しさん [sage] 2018/03/17(土) 15:03:38.07 ID:RY7g5/8I 聞かれてるのはバッチでの実現手段なのにロジックとか言い出してどうすんだよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/410
411: デフォルトの名無しさん [sage] 2018/03/17(土) 15:06:43.59 ID:9hc/1qQU 文字列の比較も削除も面倒だから バッチではやらないほうがいい http://mevius.5ch.net/test/read.cgi/tech/1489207631/411
412: デフォルトの名無しさん [sage] 2018/03/17(土) 17:30:52.69 ID:4x6FsbbS vbscript版作ったけどバッチ限定なら貼らなくいい? http://mevius.5ch.net/test/read.cgi/tech/1489207631/412
413: デフォルトの名無しさん [sage] 2018/03/17(土) 18:08:03.98 ID:RY7g5/8I >>404 一応無理矢理ここまで作ってみたけど、ファイルの中身や指定文字列に特殊文字が入ってると 容赦なくコケるという地獄仕様のままなんで、限定的にしか使えないと思う。 有意な最終行の内容にあわせて結果ファイルを出力するバッチ https://pastebin.com/mh9BZDCv コケないようにやるにはどうすればいいのかな・・・。誰かうまいやり方があれば教えてくれ。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/413
414: デフォルトの名無しさん [sage] 2018/03/17(土) 18:14:53.08 ID:4x6FsbbS 読んでてなんか泣けてきた http://mevius.5ch.net/test/read.cgi/tech/1489207631/414
415: デフォルトの名無しさん [sage] 2018/03/17(土) 18:22:19.25 ID:RY7g5/8I >>414 俺の選んだ手法がアホなだけかもしれんけど、バッチって基本的に制約多くて泣けてくるもんだから・・・( ノД`) せっかくだしvscript版もどこかに貼ってもらえるとありがたいな。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/415
416: デフォルトの名無しさん [sage] 2018/03/17(土) 18:29:59.15 ID:71uTBaAx >>412 >>1にそれらしいことは書いてあるから、ダメってことはないだろう ただ、「Jscript・Perl等の埋め込み」って何だろう バッチファイルに他言語のコードを埋め込めるのか? http://mevius.5ch.net/test/read.cgi/tech/1489207631/416
417: デフォルトの名無しさん [sage] 2018/03/17(土) 18:38:49.28 ID:RY7g5/8I 「バッチ JScript」とかでググればいいんじゃないか http://mevius.5ch.net/test/read.cgi/tech/1489207631/417
418: デフォルトの名無しさん [] 2018/03/17(土) 19:54:28.64 ID:HNxDhnRb >>413 ありがとうございますとても参考になりました http://mevius.5ch.net/test/read.cgi/tech/1489207631/418
419: デフォルトの名無しさん [sage] 2018/03/17(土) 21:16:57.69 ID:Eknm4yJC @echo off set n0=0 set n1=0 set n2=0 set file="xxx.txt" set newfile="new.txt" set word=xxx type nul>new.txt for /f "tokens=1* delims=:" %%i in ('findstr /n "." %file%') do set n0=%%i for /f "tokens=1* delims=:" %%i in ('findstr /n /c:"%word%" %file%') do set n1=%%i for /f "tokens=1* delims=:" %%i in ('findstr /n /c:"-- %word%" %file%') do set n2=%%i if %n0% equ %n1% if %n1% neq %n2% goto :eof if %n0% equ %n2% (call :del-line %n2%) else (copy /y %file% %newfile%>nul) call :add-line move /y %newfile% %file%>nul goto :eof :del-line for /f "tokens=1* delims=:" %%i in ('findstr /n ".*" %file%') do if %%i neq %1 echo;%%j>>%newfile% goto :eof :add-line echo;%word%>>%newfile% goto :eof http://mevius.5ch.net/test/read.cgi/tech/1489207631/419
420: デフォルトの名無しさん [sage] 2018/03/18(日) 00:33:29.96 ID:Sr1iY1Ai ループ回しすぎじゃね? 小さいファイルならいいだろうけど でかいログファイルとかだと辛いかも http://mevius.5ch.net/test/read.cgi/tech/1489207631/420
421: デフォルトの名無しさん [sage] 2018/03/18(日) 01:44:49.36 ID:WKBkcipr バッチのfor /f 〜 in (ファイル)って1行ずつシーケンシャルにメモリに読んでるって考えていいのかな? http://mevius.5ch.net/test/read.cgi/tech/1489207631/421
422: デフォルトの名無しさん [sage] 2018/03/18(日) 04:17:33.81 ID:Cc3+LG/u >>420 wordってのがどれだけの頻度で出現するかで違ってくる もし殆ど書かれてないのなら、最後が --hogeならforループはほぼ2回分(wordが各行当たり前にあるのなら4回分) hogeやなしならforループはほぼ1回分(wordが各行当たり前にあるのなら3回分) wordと--wordの検索は一緒のループでできそうだけど あと、データ中に、&|^%"'\や%date%を入れてみたけど問題ないみたいだ(win7) http://mevius.5ch.net/test/read.cgi/tech/1489207631/422
423: デフォルトの名無しさん [sage] 2018/03/18(日) 04:26:44.33 ID:Cc3+LG/u いや各行にwordと--wordのどっちかしか無いとするなら--wordの場合で最大でも3回分か http://mevius.5ch.net/test/read.cgi/tech/1489207631/423
424: デフォルトの名無しさん [sage] 2018/03/18(日) 05:31:06.94 ID:5/8yH4g6 set /a a0=0,b=0,c=1,e=1 for /f "delims=: tokens=1*" %%i in ('findstr /n .* in.txt') do ( set "a%%i=%%j" if defined a%%i set /a b=%%i set /a c=%%i+1 ) setlocal enabledelayedexpansion if not "!a%b%!"=="!a%b%:hoge=!" set /a c=b set "a%c%=hoge" del out.txt :y echo.!a%e%!>>out.txt set /a e+=1 & if !e! leq !c! goto y http://mevius.5ch.net/test/read.cgi/tech/1489207631/424
425: デフォルトの名無しさん [sage] 2018/03/18(日) 07:42:25.76 ID:Cc3+LG/u 1万行ある適当なテキストファイルでテストしてみた >>419の方、3.1秒 (最後に-- hoge行を加えた場合 7.5秒) >>424の方、2分14秒(最後に-- hoge行を加えた場合 2分14秒) ってな結果になった >>419の方はforのループ回数は多いが、比較すると速いという結果になった http://mevius.5ch.net/test/read.cgi/tech/1489207631/425
426: デフォルトの名無しさん [sage] 2018/03/18(日) 16:56:47.62 ID:93ta1lhd Oh...ワタシ findstr /n ノキョドウカンチガイシテタネ... http://mevius.5ch.net/test/read.cgi/tech/1489207631/426
427: デフォルトの名無しさん [sage] 2018/03/18(日) 20:22:40.18 ID:93ta1lhd >>419、>>424は対象ファイルの行頭にコロンがあると消されちゃうね。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/427
428: デフォルトの名無しさん [sage] 2018/03/18(日) 22:13:27.07 ID:WKBkcipr そういう後から判明するバグが紛れ込むからバッチで文字列処理は嫌なんだよな http://mevius.5ch.net/test/read.cgi/tech/1489207631/428
429: デフォルトの名無しさん [sage] 2018/03/18(日) 22:14:36.65 ID:5/8yH4g6 先頭から連続するデリミタは全て消される >>419,>>424 どっちもダメ >>424 は /? もダメ abc :::def /? -- hoge http://mevius.5ch.net/test/read.cgi/tech/1489207631/429
430: デフォルトの名無しさん [sage] 2018/03/18(日) 22:17:56.90 ID:5/8yH4g6 /? は >>419 の方がダメだった http://mevius.5ch.net/test/read.cgi/tech/1489207631/430
431: デフォルトの名無しさん [sage] 2018/03/18(日) 22:45:10.52 ID:WKBkcipr 俺が仮組みしてみたやつもforの変な仕様で空行削除されてた バッチだけで手軽には無理だな 素直に適当なスクリプト使った方がいい http://mevius.5ch.net/test/read.cgi/tech/1489207631/431
432: デフォルトの名無しさん [sage] 2018/03/18(日) 22:59:27.55 ID:Cc3+LG/u >>430 セミコロンをピリオドとかコロンとにするといいみたい echo; → echo: http://mevius.5ch.net/test/read.cgi/tech/1489207631/432
433: デフォルトの名無しさん [sage] 2018/03/18(日) 23:05:58.69 ID:Sr1iY1Ai >>425 424のほうのgoto labelをfor(/L)にすると多少速くなるけど findstrを繰り返し使ったほうが速いね メモリにも優しい http://mevius.5ch.net/test/read.cgi/tech/1489207631/433
434: デフォルトの名無しさん [sage] 2018/03/18(日) 23:09:22.00 ID:WKBkcipr >>432 どの文字に変えてもその文字が来ればデミリタ判断されておかしなぶった切りが起こるから デミリタ文字のエスケープ処理が必要になるんでは http://mevius.5ch.net/test/read.cgi/tech/1489207631/434
435: デフォルトの名無しさん [sage] 2018/03/19(月) 02:29:30.41 ID:VE4HgUIn ×デミリタ ○デリミタ http://mevius.5ch.net/test/read.cgi/tech/1489207631/435
436: デフォルトの名無しさん [sage] 2018/03/19(月) 06:32:04.04 ID:UCUeI8NE UTF8扱えない時点で限界を感じる http://mevius.5ch.net/test/read.cgi/tech/1489207631/436
437: デフォルトの名無しさん [sage] 2018/03/19(月) 09:11:01.79 ID:cAxnz/N1 set /a a=0,b=0,c=0,d=1 & del out.txt 2> nul for /f "delims=:" %%i in ('findstr /n . in.txt') do set /a a=%%i for /f "delims=:" %%i in ('findstr /n hoge in.txt') do set /a b=%%i if %a%==%b% set /a c=b for /f "delims=0123456789 tokens=*" %%i in ('findstr /n .* in.txt') do ( set "e=%%i" setlocal enabledelayedexpansion if !d!==!c! goto x echo.!e:~1!>>out.txt endlocal set /a d+=1 ) :x echo hoge>>out.txt http://mevius.5ch.net/test/read.cgi/tech/1489207631/437
438: デフォルトの名無しさん [sage] 2018/03/20(火) 06:19:09.67 ID:5rDh/omp >>437 元ファイルにechoで追加ですむ場合もあるが ファイル終端が改行になってるか確認する方法が思いつかない http://mevius.5ch.net/test/read.cgi/tech/1489207631/438
439: デフォルトの名無しさん [sage] 2018/03/20(火) 08:03:38.21 ID:BuzmWDFp >>438 終端に改行があろうがなかろうが、echoで出力すれば改行は付加されるよ あとは参考になるかわからんが set LF=^ setlocal EnableDelayedExpansion findstr /n .* in.txt findstr /n $ in.txt findstr /n !LF! in.txt の出力の差で終端改行のありなしの見分けがつくかも (setとsetlocal行の間の空行は省略しないこと) 改行コードが、CR/LF、LF、CRで違った結果が出るところが面白いよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/439
440: デフォルトの名無しさん [sage] 2018/03/20(火) 19:42:04.51 ID:5rDh/omp >>439 ファイル終端が改行になっていないと最後の行の後ろにhogeがくっつくだけだよ >>419で試してみなよ echoで空行を追加してからhogeを付ければいいんだけど それだとファイル終端が改行になっていたら余計な空行ができる http://mevius.5ch.net/test/read.cgi/tech/1489207631/440
441: デフォルトの名無しさん [sage] 2018/03/20(火) 20:10:53.11 ID:to9q6Sr+ コマンドプロンプトの画面で以下の<コマンド?>を入力すると現在の年月日時分秒が表示されるのですが これを変数に入れるにはどうすれば良いのでしょうか? 以下の<コマンド?>ではうまく入りませんでした・・・ <コマンド?> powershell -command "date -f yyyyMMddHHmmss" <コマンド?> set NICHIJI=powershell -command "date -f yyyyMMddHHmmss" http://mevius.5ch.net/test/read.cgi/tech/1489207631/441
442: デフォルトの名無しさん [sage] 2018/03/20(火) 23:06:27.49 ID:BuzmWDFp >>440 >>437のことじゃなかったのか http://mevius.5ch.net/test/read.cgi/tech/1489207631/442
443: デフォルトの名無しさん [sage] 2018/03/20(火) 23:18:51.64 ID:aHaiWzOW >>441 for /f "delims=" %%G in (‘powershell -command “date …”’) do set “NICHIJI=%%G" http://mevius.5ch.net/test/read.cgi/tech/1489207631/443
444: デフォルトの名無しさん [sage] 2018/03/20(火) 23:52:48.01 ID:BuzmWDFp >>441 外部プログラムの標準出力を取り込むのが目的ではなくて、単に現在日時をセットするだけならバッチのみで済むけど set NICHIJI=%date:/=%%time::=% set NICHIJI=%NICHIJI:~0,-3% http://mevius.5ch.net/test/read.cgi/tech/1489207631/444
445: デフォルトの名無しさん [sage] 2018/03/21(水) 01:09:02.52 ID:UBrEBSgZ >>442 すみません、分かりにくい文でした >>437を改造しようとしたが改行がネックだと言う話 以下の通り改造してみた >>437の4行目と5行目の間に一行挿入 if %c%==0 goto y ラベル:x以降は変更 :x echo hoge>>out.txt goto :eof :y copy in.txt out.txt & call :x for /f %%i in ('findstr .* out.txt') do set "e=%%i" if "%e%"=="hoge" goto :eof copy in.txt out.txt echo.>>out.txt goto x http://mevius.5ch.net/test/read.cgi/tech/1489207631/445
446: デフォルトの名無しさん [sage] 2018/03/21(水) 01:15:45.86 ID:UBrEBSgZ あ、for /f "delims=" かな http://mevius.5ch.net/test/read.cgi/tech/1489207631/446
447: デフォルトの名無しさん [sage] 2018/03/22(木) 16:25:40.46 ID:pbBa6R9F echo と同じ行で何か実行すると空白が入る echo.>a echo.>b & rem dir a b http://mevius.5ch.net/test/read.cgi/tech/1489207631/447
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 555 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s