[過去ログ] 【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
348(1): 2018/02/05(月)14:11 ID:ETXmgzVd(4/4)調 AAS
やっと思い出したぞ裏技w
前後の端にダミーの二重引用符 ^" を付けるんだった
>>347 のおかげで思い出したぜ
set testExe="D:\a bc\test.exe"
for /f "tokens=3" %%a in ('^"%testexe% --help ^| findstr "targetstr"^"') do (
349: 2018/02/06(火)13:18 ID:m2OYikdE(1)調 AAS
>>347-348
できました。なるほど、そういう解釈がされるんですね・・・。
バッチってほんと思わぬところでひっかかりますよね。とても勉強になりました。ありがとうございます。
350: 2018/02/07(水)10:59 ID:fDqCQtuz(1/3)調 AAS
VBでプログラムを作っているのですが、行き詰ってしまったので質問させていただきます。
バッチでiniファイルを読み込み、iniから取得したデータを格納した変数をVBのソース内で使いたいのですが可能ですか?
exe形式での納品となるのでiniファイルの読み込みはどうしてもバッチ内で行いたいのです。
ちなみに処理の流れとしては、iniファイル読み込み→exeファイル実行となっています。
どなたかご教授ください。よろしくお願いいたします。
351: 2018/02/07(水)11:12 ID:fDqCQtuz(2/3)調 AAS
申し訳ございません。
バッチでiniファイルを読み込み、iniから取得したデータを
格納した変数をVBのソース内で使いたいのですが可能ですか? ×
VBのソース内の変数に格納したいのですが可能ですか? ○
でした。
352(1): 2018/02/07(水)11:43 ID:LQaGrglb(1)調 AAS
バッチで、ini ファイルを読み込み、必要な値を取り出して、
それらを引数にして、exe を起動する
そして、exe 内では、引数から読み込んだ値を使う
353: 2018/02/07(水)12:00 ID:fDqCQtuz(3/3)調 AAS
>>352
どう調べたらいいか分からず困っていたのですが、引数の取得で検索すればなんとかなりそうですね。
後は自分で調べてやってみます。ありがとうございました。
354(1): 2018/02/07(水)16:46 ID:EyPJd6fI(1)調 AAS
バッチだと for文を使います
複雑なことをするのであればVBで直接読み込む方法もあります
355(1): 2018/02/10(土)12:18 ID:/lSv2IRR(1)調 AAS
バッチでiniファイルなんて読み込めるの?
VBとかからGetPrivateProfileStringとかのAPIを使うんじゃないの?
まあ力技で出来ないことはないんだろうけど自分が知らないだけで一般的なやり方というのがあるのかな?
356: 2018/02/10(土)15:32 ID:K6TfvilX(1)調 AAS
ググればふつうに出てくるようだが。(内容まではちゃんと見てない)
357: 2018/02/10(土)16:29 ID:Sj+J5yD3(1)調 AAS
>>355
>>354の言うようにfor文を使う
わかりやすいとは言えないし特殊文字が含まれると色々面倒なのでおすすめはしない
358: 2018/02/11(日)19:16 ID:l1W9SMIH(1)調 AAS
バッチファイルでファイル操作って一見ちゃんと動いてるように見えて穴だらけって場合が多いからやりたくないな
wshで実装したりps辺りで既存のAPI呼び出す方がいい
359: 2018/02/11(日)19:44 ID:+WWL4Di4(1)調 AAS
batで設定呼び出したい時はiniじゃなくてsetting.batに変数を直接記述してcallしてるわ
このやり方も良いやり方なのかどうか分からんけど
360(1): 2018/02/12(月)12:02 ID:OYWjTvif(1)調 AAS
http://ascii.jp/elem/000/001/630/1630041/
Windows 10 RS4に追加された「curl」と「tar」コマンド
って curl と tar が追加されるんだ
PowerShell にも curl コマンド(エイリアス)があってややこしさが増すな
でも、標準で使えるようになるのはバッチファイル使ってる身とすれば
嬉しくはある
361: 2018/02/12(月)15:53 ID:BbO5lIMB(1)調 AAS
もうRS4か
RS3の不具合なんとかしてくれよ
362: 2018/02/18(日)16:07 ID:OqSvNe2j(1)調 AAS
ファイル圧縮バッチを
hta の画面にドロップするだけで実行するやつ作った
2chスレ:csaloon
ファイルをバッチファイルにドロップして引数受け取りは普通にあるけど
ファイル名の一部を文字列としてドロップしても起動されないのでこういう方法を取った。
363(2): 2018/02/18(日)16:25 ID:ZqWPhgUg(1)調 AAS
>>360
Windows10 なら、WSL で、MS Store から、Ubuntu 16.04 LTS をダウンロードすれば、
curl, tar も入っている
他のLinux のコマンドも、一杯ある
364: 2018/02/18(日)19:16 ID:yvQzNzLN(1)調 AAS
>>363
それはバッチから使えるの?
365: 2018/02/18(日)19:20 ID:F2O3xW/S(1)調 AAS
普通に使える
ubuntu run curl --help
366: 2018/02/19(月)04:53 ID:xIEc0S27(1)調 AAS
Linux(Ubuntu)側のbash、Windows側のPowerShell・コマンドプロンプトから、
相互のアプリ・コマンドを実行できる
相互のパイプも、つなげられる
つまり、Linux側のbashは、Windows10 の1つのアプリになっている
367: 2018/02/19(月)08:14 ID:2cNNs3G6(1)調 AAS
> Ubuntu 16.04 LTS をダウンロードすれば、
この手の前提条件が無いことがバッチのメリットなのに...
368(1): 2018/02/19(月)22:58 ID:oh22XJYs(1)調 AAS
>>363
Web開発テスト用の範囲を超えてない。
当のMSが「運用には使ってくれるな」つってるのによ。
お前馬鹿か?馬鹿だろ。
369: 2018/02/19(月)23:41 ID:9tX9GnHd(1)調 AAS
なんでこの人「運用」とか言い出してんの?
370(1): 2018/02/19(月)23:44 ID:uhfYTKrf(1)調 AAS
>>368
WSLはウェブサービス開発で使って、
実際にそのウェブサービスを動かす(=運用)するのは
ネイティブなLinuxの上だぞ。例えばAzure上のLinuxとか
運用に使ってくれるなっていうのは、WSL上でウェブサービスを動かして
実際に不特定の人にサービスを提供するなっていう意味だ
371: 2018/02/20(火)00:06 ID:amqSspGZ(1/7)調 AAS
WSL 上で、Webサーバーとかを常時接続させて運用できない
まあ最初から、自分のデスクトップPC を外部につなげて、
そんなサービスをする奴は、居ないだろ
372(1): 2018/02/20(火)00:08 ID:ZtM0s1po(1/3)調 AAS
バッチで使うのは運用ではないと?
373(1): 2018/02/20(火)00:13 ID:XC4KsyV/(1)調 AAS
>>370
端末のスタートアップスクリプトに使うのも用途外。
だから「使える」とか言うのは明らかに言い過ぎ。
お前馬鹿か?馬鹿だろ。
374: 2018/02/20(火)00:40 ID:wdwe47Ke(1/11)調 AAS
>>373
> 端末のスタートアップスクリプトに使うのも用途外。
端末のスタートアップスクリプトの話なんかしてないんだが、
何を言い出してるんだ? そもそも端末のスタートアップスクリプトの
意味わからねぇw
>>372
運用っていうから悪いんだよ。
「一般ユーザーに対してのウェブサービスの提供」
MSが使うなって言ってるのはこれだけだよ
375: 2018/02/20(火)00:43 ID:wdwe47Ke(2/11)調 AAS
うん、ちゃんと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.
サーバーアプリケーションを実行できるが、サーバーとしてのシナリオは推奨してないと
376: 2018/02/20(火)00:46 ID:wdwe47Ke(3/11)調 AAS
もう一つ、誰のためのものですか?という質問には
> 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ツールや言語を使いたい人のためのものと
377(6): 2018/02/20(火)00:57 ID:amqSspGZ(2/7)調 AAS
Windows のコマンドプロンプトから、
wsl bash -c "echo 'hello'"
出力結果 : hello
これぐらいのLinux の起動・実行・終了は、1秒!
定時処理ぐらい楽勝
サーバーみたいに常時実行しなければ大丈夫
378: 2018/02/20(火)01:27 ID:wdwe47Ke(4/11)調 AAS
>>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カーネルを模したサブシステム
379(1): 377 2018/02/20(火)01:41 ID:amqSspGZ(3/7)調 AAS
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は、もう正規版だし、単なるアプリとして使う分には、問題ないだろ
380: 377 2018/02/20(火)01:44 ID:amqSspGZ(4/7)調 AAS
書き忘れた
Windows のコマンドプロンプトで、
>where bash
C:\Windows\System32\bash.exe
381(1): 377 2018/02/20(火)01:53 ID:amqSspGZ(5/7)調 AAS
Windows のコマンドプロンプトで、
>wsl echo hello
>ubuntu -c "echo hello"
>bash -c "echo hello"
これらは皆、hello が出力されるけど、書き方が異なる
wsl では、echo がサブコマンドになっているのかも
382: 2018/02/20(火)01:58 ID:wdwe47Ke(5/11)調 AAS
>>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 が出来た。
こんな所だと思う
383(2): 2018/02/20(火)02:00 ID:ZtM0s1po(2/3)調 AAS
なんでバッチスレでパソコン博士がWSLでイキってるの?
384: 2018/02/20(火)02:01 ID:wdwe47Ke(6/11)調 AAS
>>381
ubuntu /?をするとわかるが、
ubuntu run echo helloが正しい
ubuntu.exeもwsl.exeもbash.exeもパラメータの扱いが違うだけで
ディストリ上のbashを実行していることは確かなようだ
385: 2018/02/20(火)02:01 ID:wdwe47Ke(7/11)調 AAS
>>383
Windows 10において、バッチファイルでWSLと連携するのは
当たり前の話になってきているから
386: 2018/02/20(火)02:04 ID:wdwe47Ke(8/11)調 AAS
ubuntuは
Usage:
<no args>
- Launches the distro's default behavior. By default, this launches your default shell.
と書いてあるから、bashじゃなくてデフォルトシェルが呼び出されるのかも。
うーん、どれを使うのが良い(汎用的)なのだろう?
387: 377 2018/02/20(火)02:51 ID:amqSspGZ(6/7)調 AAS
wsl(Linux のbash)・PowerShell・コマンドプロンプトの3つが、
パイプでもつなげられるし、シームレスになってきて、CUI が統合されてきているから、
個別の話よりも、3つのCUI をパイプでどうつなげるかの方に、
話の焦点が移ってきている
388: 377 2018/02/20(火)03:10 ID:amqSspGZ(7/7)調 AAS
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 を使うと良いかも
389(1): 2018/02/20(火)06:46 ID:+0IlbXev(1/2)調 AAS
>>383
オモチャ買ってもらった子供が「見て見てこれすごいんだよー」って言ってるような感じ
暖かく見守ってやれ
390(1): 2018/02/20(火)12:42 ID:ZtM0s1po(3/3)調 AAS
>>389
WSL出た頃なら仕方が無いが...
やっぱパソコン博士レベルだと今頃になってやっとおもちゃを見つける感じなのか。
391: 2018/02/20(火)19:54 ID:+0IlbXev(2/2)調 AAS
へへーん、ぼくなんてまえからもってるもんねー
それはすごいねー w
392: 2018/02/20(火)21:48 ID:BI5N21qv(1/2)調 AAS
さすがにスレチだからもうやめとけと思うけど、WSLについて少し調べてみようと思うきっかけにはなったわ。
393: 2018/02/20(火)22:56 ID:wdwe47Ke(9/11)調 AAS
パソコン先生に恨みでもあるのかな?
そんな話をしてもバッチファイルを書く上で
何の意味もないと思うんだが、話をしたいのだろうね
394: 2018/02/20(火)23:00 ID:wdwe47Ke(10/11)調 AAS
>>390
Bash on Ubuntu on Windowsは、早く使いたかったんで
Inside Previewに変えてまで使ったよ。
GUIアプリには対応していないって書いてあったが仕組み上
GUIアプリ動くんじゃね?ってそこの頃はまだ情報が少なかったけど
実際に自分で試してxeyes は動いたーって2ちゃんねるに書いた記憶がある
395: 2018/02/20(火)23:11 ID:BI5N21qv(2/2)調 AAS
自分語りとか余計なことをダラダラ書き連ねるから嫌われるんだよ。
396: 2018/02/20(火)23:20 ID:wdwe47Ke(11/11)調 AAS
嫌うのは相手の問題だからどうしようもない
俺に対する勘違いは、俺の問題だから解決する必要がある
397: 2018/02/21(水)02:19 ID:PXpce9sQ(1)調 AAS
パソコン先生、怒りの連投きたー
398: 2018/02/21(水)02:50 ID:1KGQWp4x(1)調 AAS
連続してね〜じゃんw
399(1): 2018/02/25(日)16:07 ID:97AlcoLv(1/2)調 AAS
例えば「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)をコマンドで変更することは出来るのでしょうか?
400(1): 2018/02/25(日)17:44 ID:f0GbsyKa(1)調 AAS
reg add HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\aaa /v Server /t REG_SZ /d bbbDB
とかでだめなん
401: 399 2018/02/25(日)19:41 ID:97AlcoLv(2/2)調 AAS
>>400
「/v Server」は「/v Database」の間違いですよね?
これでバッチリいけました。ありがとうございます!
402(1): 2018/02/28(水)10:04 ID:xTKxXp1v(1/2)調 AAS
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」の様な入力方法は有りますか?
403: 402 2018/02/28(水)10:18 ID:xTKxXp1v(2/2)調 AAS
>>402
自己解決しました
404(1): 2018/03/16(金)22:05 ID:HEHaQcsS(1)調 AAS
バッチファイルで
空行を除く最終行にhogeって文字がなかったら追加して改行
-- hogeとかになってたら削除してhoge追記して改行
って事をやりたいんですけどどうやったらできるかおせーてください
405(1): 2018/03/17(土)05:37 ID:nxO/ldT7(1)調 AAS
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 }
406: 2018/03/17(土)12:51 ID:HNxDhnRb(1/2)調 AAS
>>405
あのーバッチって聞いてるのにrubyのスクリプト出されても困るんですけど
407: 2018/03/17(土)13:17 ID:FI/uI0vX(1)調 AAS
やらなくても言い余計なことをして場を混乱させる人って必ずいるよね
408: 2018/03/17(土)13:29 ID:Y0/A+N6A(1)調 AAS
ルビ厨の相手するなよ...
409: 2018/03/17(土)13:33 ID:T/uji2Bj(1)調 AAS
ロジック真似すればいいだけじゃん
作ってくれじゃなくて教えてくれなんだから
Lispで回答されて読めないのは理解できるが
上のRubyくらいなら何の問題もないだろ
410: 2018/03/17(土)15:03 ID:RY7g5/8I(1/4)調 AAS
聞かれてるのはバッチでの実現手段なのにロジックとか言い出してどうすんだよ
411: 2018/03/17(土)15:06 ID:9hc/1qQU(1)調 AAS
文字列の比較も削除も面倒だから
バッチではやらないほうがいい
412(1): 2018/03/17(土)17:30 ID:4x6FsbbS(1/2)調 AAS
vbscript版作ったけどバッチ限定なら貼らなくいい?
413(1): 2018/03/17(土)18:08 ID:RY7g5/8I(2/4)調 AAS
>>404
一応無理矢理ここまで作ってみたけど、ファイルの中身や指定文字列に特殊文字が入ってると
容赦なくコケるという地獄仕様のままなんで、限定的にしか使えないと思う。
有意な最終行の内容にあわせて結果ファイルを出力するバッチ
https://pastebin.com/mh9BZDCv
コケないようにやるにはどうすればいいのかな・・・。誰かうまいやり方があれば教えてくれ。
414(1): 2018/03/17(土)18:14 ID:4x6FsbbS(2/2)調 AAS
読んでてなんか泣けてきた
415: 2018/03/17(土)18:22 ID:RY7g5/8I(3/4)調 AAS
>>414
俺の選んだ手法がアホなだけかもしれんけど、バッチって基本的に制約多くて泣けてくるもんだから・・・( ノД`)
せっかくだしvscript版もどこかに貼ってもらえるとありがたいな。
416: 2018/03/17(土)18:29 ID:71uTBaAx(1)調 AAS
>>412
>>1にそれらしいことは書いてあるから、ダメってことはないだろう
ただ、「Jscript・Perl等の埋め込み」って何だろう
バッチファイルに他言語のコードを埋め込めるのか?
417: 2018/03/17(土)18:38 ID:RY7g5/8I(4/4)調 AAS
「バッチ JScript」とかでググればいいんじゃないか
418: 2018/03/17(土)19:54 ID:HNxDhnRb(2/2)調 AAS
>>413
ありがとうございますとても参考になりました
419(5): 2018/03/17(土)21:16 ID:Eknm4yJC(1)調 AAS
@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
420(1): 2018/03/18(日)00:33 ID:Sr1iY1Ai(1/2)調 AAS
ループ回しすぎじゃね?
小さいファイルならいいだろうけど
でかいログファイルとかだと辛いかも
421: 2018/03/18(日)01:44 ID:WKBkcipr(1/4)調 AAS
バッチのfor /f 〜 in (ファイル)って1行ずつシーケンシャルにメモリに読んでるって考えていいのかな?
422: 2018/03/18(日)04:17 ID:Cc3+LG/u(1/4)調 AAS
>>420
wordってのがどれだけの頻度で出現するかで違ってくる
もし殆ど書かれてないのなら、最後が
--hogeならforループはほぼ2回分(wordが各行当たり前にあるのなら4回分)
hogeやなしならforループはほぼ1回分(wordが各行当たり前にあるのなら3回分)
wordと--wordの検索は一緒のループでできそうだけど
あと、データ中に、&|^%"'\や%date%を入れてみたけど問題ないみたいだ(win7)
423: 2018/03/18(日)04:26 ID:Cc3+LG/u(2/4)調 AAS
いや各行にwordと--wordのどっちかしか無いとするなら--wordの場合で最大でも3回分か
424(3): 2018/03/18(日)05:31 ID:5/8yH4g6(1/3)調 AAS
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
425(1): 2018/03/18(日)07:42 ID:Cc3+LG/u(3/4)調 AAS
1万行ある適当なテキストファイルでテストしてみた
>>419の方、3.1秒 (最後に-- hoge行を加えた場合 7.5秒)
>>424の方、2分14秒(最後に-- hoge行を加えた場合 2分14秒)
ってな結果になった
>>419の方はforのループ回数は多いが、比較すると速いという結果になった
426: 2018/03/18(日)16:56 ID:93ta1lhd(1/2)調 AAS
Oh...ワタシ findstr /n ノキョドウカンチガイシテタネ...
427: 2018/03/18(日)20:22 ID:93ta1lhd(2/2)調 AAS
>>419、>>424は対象ファイルの行頭にコロンがあると消されちゃうね。
428: 2018/03/18(日)22:13 ID:WKBkcipr(2/4)調 AAS
そういう後から判明するバグが紛れ込むからバッチで文字列処理は嫌なんだよな
429: 2018/03/18(日)22:14 ID:5/8yH4g6(2/3)調 AAS
先頭から連続するデリミタは全て消される
>>419>>424 どっちもダメ
>>424 は /? もダメ
abc
:::def
/?
-- hoge
430(1): 2018/03/18(日)22:17 ID:5/8yH4g6(3/3)調 AAS
/? は >>419 の方がダメだった
431: 2018/03/18(日)22:45 ID:WKBkcipr(3/4)調 AAS
俺が仮組みしてみたやつもforの変な仕様で空行削除されてた
バッチだけで手軽には無理だな
素直に適当なスクリプト使った方がいい
432(1): 2018/03/18(日)22:59 ID:Cc3+LG/u(4/4)調 AAS
>>430
セミコロンをピリオドとかコロンとにするといいみたい
echo; → echo:
433: 2018/03/18(日)23:05 ID:Sr1iY1Ai(2/2)調 AAS
>>425
424のほうのgoto labelをfor(/L)にすると多少速くなるけど
findstrを繰り返し使ったほうが速いね
メモリにも優しい
434: 2018/03/18(日)23:09 ID:WKBkcipr(4/4)調 AAS
>>432
どの文字に変えてもその文字が来ればデミリタ判断されておかしなぶった切りが起こるから
デミリタ文字のエスケープ処理が必要になるんでは
435: 2018/03/19(月)02:29 ID:VE4HgUIn(1)調 AAS
×デミリタ
○デリミタ
436: 2018/03/19(月)06:32 ID:UCUeI8NE(1)調 AAS
UTF8扱えない時点で限界を感じる
437(3): 2018/03/19(月)09:11 ID:cAxnz/N1(1)調 AAS
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
438(1): 2018/03/20(火)06:19 ID:5rDh/omp(1/2)調 AAS
>>437
元ファイルにechoで追加ですむ場合もあるが
ファイル終端が改行になってるか確認する方法が思いつかない
439(1): 2018/03/20(火)08:03 ID:BuzmWDFp(1/3)調 AAS
>>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で違った結果が出るところが面白いよ
440(1): 2018/03/20(火)19:42 ID:5rDh/omp(2/2)調 AAS
>>439
ファイル終端が改行になっていないと最後の行の後ろにhogeがくっつくだけだよ
>>419で試してみなよ
echoで空行を追加してからhogeを付ければいいんだけど
それだとファイル終端が改行になっていたら余計な空行ができる
441(2): 2018/03/20(火)20:10 ID:to9q6Sr+(1)調 AAS
コマンドプロンプトの画面で以下の<コマンド?>を入力すると現在の年月日時分秒が表示されるのですが
これを変数に入れるにはどうすれば良いのでしょうか?
以下の<コマンド?>ではうまく入りませんでした・・・
<コマンド?>
powershell -command "date -f yyyyMMddHHmmss"
<コマンド?>
set NICHIJI=powershell -command "date -f yyyyMMddHHmmss"
442(1): 2018/03/20(火)23:06 ID:BuzmWDFp(2/3)調 AAS
>>440
>>437のことじゃなかったのか
443: 2018/03/20(火)23:18 ID:aHaiWzOW(1)調 AAS
>>441
for /f "delims=" %%G in (‘powershell -command “date …”’) do set “NICHIJI=%%G"
444: 2018/03/20(火)23:52 ID:BuzmWDFp(3/3)調 AAS
>>441
外部プログラムの標準出力を取り込むのが目的ではなくて、単に現在日時をセットするだけならバッチのみで済むけど
set NICHIJI=%date:/=%%time::=%
set NICHIJI=%NICHIJI:~0,-3%
445: 2018/03/21(水)01:09 ID:UBrEBSgZ(1/2)調 AAS
>>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
446: 2018/03/21(水)01:15 ID:UBrEBSgZ(2/2)調 AAS
あ、for /f "delims=" かな
447: 2018/03/22(木)16:25 ID:pbBa6R9F(1/3)調 AAS
echo と同じ行で何か実行すると空白が入る
echo.>a
echo.>b & rem
dir a b
上下前次1-新書関写板覧索設栞歴
あと 555 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s