[過去ログ] 【.cmd】 バッチファイルスクリプト %14 【.bat】 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1(1): デフォルトの名無しさん [sage] 2020/08/15(土) 07:00:26.64 ID:f3kW5kCx(1) AAS
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう
過去スレ
%13 2chスレ:tech
%12 2chスレ:tech
%11 2chスレ:tech
%10 2chスレ:tech
%9 2chスレ:tech
%8 2chスレ:tech
%7 2chスレ:tech
%6 2chスレ:tech
%5 2chスレ:tech
%4 2chスレ:tech
%3 2chスレ:tech
%2 2chスレ:tech
【.cmd】 バッチファイルスクリプト %1 【.bat】
2chスレ:tech
バッチファイルプログラミング 3.bat
2chスレ:tech
バッチファイルプログラミング 2.bat
2chスレ:tech
バッチファイルプログラミング質問スレ
2chスレ:tech
903: デフォルトの名無しさん [sage] 2022/08/14(日) 19:49:12.00 ID:3lHTKQ6A(1) AAS
ホスト名とは何かという定義が必要だな
WEBサーバーなら複数のホスト名(URLのドメインパート)で同じ(時には複数の)サーバーに接続する
https://5ch.net/でアクセスされるサーバーなら 5ch.net がホスト名だが
同じサーバーが他のドメインもホストしているなら、他のホスト名も持っていることになる
あるサーバーが、接続され得るすべてのホスト名を知りたいと思っても、それは世界中のDNSの勝手なの、
漏れなく調べるためには、世界中のすべてのドメインのレコードを調べる必要があるので、実際には無理。
DNSの逆引きは、それを設定している人が必要な分を登録しているだけなので、すべてとは言い切れない。
904: デフォルトの名無しさん [sage] 2022/08/14(日) 20:04:12.33 ID:zcJ+8Zbe(1/3) AAS
>>900
現在接続形態で多いのが、ルータの下にローカルネットワークでPCが繋がっているというもの
この場合、PCからはローカルネットワークが全てでありIPアドレスもローカルIPアドレスが使われる
グローバルWAN側のIPアドレスを知りたいのなら
ルータにログインしてアクセスして情報を貰うか、
webのIPアドレスを教えてくれるサイトから情報を取ることになる
つまり>>902の言うとおり
905(2): デフォルトの名無しさん [sage] 2022/08/14(日) 20:07:44.49 ID:0tA/3KXA(2/2) AAS
そうです。自分のインターネット側のIP
ルーター管理画面のWAN側IPです
これをコマンド(LAN側のマシン)から調べる方法が無いのかなって
> Webサービスをスクレイピング
これってコマンドでやる方法あります?
NECのなんですけどルーター管理画面から取れるのかな?
ちょっとググったりしてみましたけど簡単なバッチくらいしか使えない自分にはハードル高いかも
906(1): デフォルトの名無しさん [sage] 2022/08/14(日) 22:44:27.94 ID:zcJ+8Zbe(2/3) AAS
>>905
curl.exeを持ってこないといけないけど
診断君のスクレイピングだと
@echo off
curl.exe http://taruo.net/e/ -s -o "res.tmp"
for /f "tokens=*" %%i in ('findstr "<TD><tt>" res.tmp') do set host=%%i&goto :get_ip
:get_ip
for /f "skip=1 tokens=*" %%i in ('findstr "<TD><tt>" res.tmp') do set ip=%%i&goto out
goto :eof
:out
for /f "delims=<> tokens=3" %%i in ("%host%") do set host=%%i
for /f "delims=<> tokens=3" %%i in ("%ip%") do set ip=%%i
set ip=%ip:~0,-2%
echo HOST NAME = %host%
echo IP ADDRESS = %ip%
907(1): デフォルトの名無しさん [sage] 2022/08/14(日) 22:55:35.81 ID:zcJ+8Zbe(3/3) AAS
>>905
何も要らないが、powershellを使わないといけない
(なおwebアクセスで診断君以外ではtls1.2を有効にしないとダメなことが多い)
$res = wget http://taruo.net/e/
if ($res.content -match "REMOTE_HOST<\/TD>\n<TD><tt>(.+)<\/tt>[\s\S]+?REMOTE_ADDR<\/TD>\n<TD><tt>([.\d]+)" ) {
$host_name = $matches[1]
$ip_address = $matches[2]
}
$host_name
$ip_address
908: デフォルトの名無しさん [sage] 2022/08/15(月) 00:00:17.27 ID:xwOg3pSS(1/2) AAS
>>906-907
ありがとうございます
curl.exe はなぜか 7.55.1.0 が system32に入ってました
参考にルーター管理画面から取得出来ないか試して無理だったら使わせて頂きます
909(1): デフォルトの名無しさん [sage] 2022/08/15(月) 02:02:49.45 ID:xwOg3pSS(2/2) AAS
お陰様でコマンドから確認出来るようになりました。この度は本当にありがとうございました
for /f "skip=301 tokens=4 delims=< " %a in ('curl http://admin:admin@192.168.0.1/index.cgi/info_main_set -s') do (for /f "skip=3 tokens=2" %b in ('nslookup %a') do @echo %b)&pause
pauseからCtrl+Cで止めているのですが、breakはバッチでgotoしないと無理ですよね?
910: デフォルトの名無しさん [sage] 2022/08/15(月) 08:55:40.32 ID:3ogXO4Oz(1) AAS
call :ラベル名 で処理を呼び出して exit /b を break として使うこともできるよ
911(1): デフォルトの名無しさん [sage] 2022/08/15(月) 21:05:50.46 ID:Z47lvB2J(1) AAS
>>909
breakしたい、というか302行目だけ欲しいってことかな。
findstrで行番号振って、さらにfindstrで目的の行だけ取るって方法があるよ。
for /f "tokens=4 delims=< " %a in ('curl 〜 -s^| findstr /rn /c:"^"^| findstr /r /c:"^302:"') do
912: デフォルトの名無しさん [sage] 2022/08/16(火) 15:31:14.62 ID:RClv+rPW(1) AAS
>>911
for /f "tokens=5 delims=< " %a in ('curl http://admin:admin@192.168.0.1/index.cgi/info_main_set -s ^| findstr /n "^" ^| findstr "^302:" ') do for /f "tokens=2" %b in ('nslookup %a ^| findstr "名前 Name"') do echo %a : %b
ありがとうございます。Ctrl+C する必要無くなりました
skip=301付けたままのうっかりミスのせいで上手く動かない原因を文字コードがEUC-JPだからfindstrが機能しないのだと勘違いし文字コードを変換する外部ツールnkf.exe入れたり明後日のことしてハマってました
目的が何行目か決まっている時は最良の方法かもですね
行番号列挙する必要がありますが複数行でも使えますし
913(2): デフォルトの名無しさん [sage] 2022/08/27(土) 21:14:13.99 ID:S8eeCUJc(1/2) AAS
文字列の入った変数から、その文字数を高速に取得したいんですが
なにか良い方法はありますか? 上限は8189です
914(1): デフォルトの名無しさん [sage] 2022/08/27(土) 22:59:03.27 ID:OpG+r6e/(1/3) AAS
if "%s:~4095,1%"=="" (4095文字より少ない) else 4095文字よりも多い
:4095未満
if "%s:~2048,1%"=="" (2048より少) else 2049以上4095未満
:4095以上
if "%s:~7042,1%"=="" (4095以上7042未満) else 7042以上
こんな感じでifを入れ子にでもサブルーチンにでもしてある程度どの範囲にあるか詰めてからカウントすれば?
8189文字で正常に動くかは忘れた分からん
カウントは 遅延展開で if "!s:~%N%,1!"=="" って感じで Nを+1してループさせればいい
915: デフォルトの名無しさん [sage] 2022/08/27(土) 23:07:32.10 ID:S8eeCUJc(2/2) AAS
>>914
ありがとうございます。参考にさせていただきます
ちなみに8189はcmdの仕様による限界です
916: デフォルトの名無しさん [sage] 2022/08/27(土) 23:22:13.27 ID:VY6ZsFbR(1) AAS
>>913
> 高速に取得したい
バッチでやるのはやめた方がいいかと
917: デフォルトの名無しさん [sage] 2022/08/27(土) 23:24:42.08 ID:OpG+r6e/(2/3) AAS
setだかcmdの構文解析だかの引数の文字数上限が8191 (0x1fff) とかで "s=" で2文字必要だから8189とかだったかな
変数名が単一文字で無かったり "" で囲ったりしても使用可能文字数減るはずだし
forやifの中で展開出来なかったりしたと思うから
限界探るなら一見使えているように見えてもちゃんと確認しといた方が良いよ
918: デフォルトの名無しさん [sage] 2022/08/27(土) 23:49:06.77 ID:OpG+r6e/(3/3) AAS
4096 -> 2048 -> 1024 -> 512 -> 256 -> 128 -> 64 -> 32
if で8回くらい判定させればそれなりに速く出来ると思う
256分割。。
オフセットも変数にしてループするとか
512で真だったら /2 偽だったら *1.5 (set /a N=N/2+N) てな感じで
919(2): デフォルトの名無しさん [sage] 2022/08/28(日) 00:01:54.99 ID:hYNZdTyV(1/3) AAS
>>913
set s=abcdefg
setlocal enabledelayedexpansion
set n=0 & if defined s (set /a "n=1<<13"
for /L %%i in (12,-1,0) do (set /a "a=n-(1<<%%i)"
for %%j in (!a!) do if "!s:~%%j,1!"=="" set n=!a!))
echo !n!
920: デフォルトの名無しさん [sage] 2022/08/28(日) 00:18:39.63 ID:8DkHE3ui(1) AAS
なるほどなー
set n=!a! や set /a "a=n-(1<<%%i)"
これがパッと出て来るなんて頭良いですね
921(1): デフォルトの名無しさん [sage] 2022/08/28(日) 10:26:23.19 ID:+w1wfoOM(1/2) AAS
たとえばファイルサイズを
%~z1 でなくfilename.sizeみたいなわかりやすい書き方に
する方法はないですか
922: デフォルトの名無しさん [] 2022/08/28(日) 10:36:37.74 ID:FcIb+N5t(1) AAS
バッチファイルにわかりやすい書き方なんてものがあったら、俺の髪はもっと残ってた
923(1): デフォルトの名無しさん [sage] 2022/08/28(日) 11:08:55.91 ID:CaouF0NP(1/2) AAS
バッチの基本的な考え方としては基本コマンドにこだわらず外部コマンドを呼ぶことだと思う
セキュリティ的に外部コマンドは入れられないといった制約があるならこのレガシーツールを使い続けるのは無理がある
現実解のひとつはPowershellのワンライナーを呼ぶことで
そうやって少しずつ学んでるうちに段階的にbatを卒業することだと思う
924(1): デフォルトの名無しさん [sage] 2022/08/28(日) 11:23:21.78 ID:+w1wfoOM(2/2) AAS
>>923
ありがとうございます
やはり無理なのか、aliasesなどを使った名案があればいいのに
Powershellはコマンド名が長すぎて使う気になれない
外部コマンドやツ-ルを使えば簡単でもセキュリティ的に問題があるかわからないので使いたくない場合がある
925: デフォルトの名無しさん [sage] 2022/08/28(日) 11:41:21.61 ID:3aiLuiYL(1/2) AAS
エイリアスもどきはあるよ
マクロファイルに定義を書いておいて一斉に登録することもできる
doskey /?
あとpowershellにはエイリアスがある
926: デフォルトの名無しさん [sage] 2022/08/28(日) 15:23:54.30 ID:CaouF0NP(2/2) AAS
Powershellは単に慣れと食わず嫌いの問題やね
cmdも無数の気持ち悪いルールがあるし現にたかが文字を数えるだけで呪文めいたコードが必要になってる
何にせよ人間慣れれば気にならなくなるもの
さすがにあと5年で定年だからプログラミングしなくなりますなんて老人には勧めんけどね
コマンドの長さとエイリアスについては
俺はGet-ChildItemはダルいからdirやlsと書くし
ForEach-Objectの代わりに%と書き続けてる
927: デフォルトの名無しさん [sage] 2022/08/28(日) 15:36:49.18 ID:3aiLuiYL(2/2) AAS
powershellの弱点は初期起動に時間が掛かるという点だね
通常的にpowershellを使ってるならいいけど、
それこそ特定の処理だけたまに使うという人にはそこがネックになる
そういう場合はもうオブソリュートだがWSHがいい仕事をする
928: デフォルトの名無しさん [sage] 2022/08/28(日) 17:28:34.01 ID:hYNZdTyV(2/3) AAS
>>921 わかりやすい変数に代入すれば?
929: デフォルトの名無しさん [sage] 2022/08/28(日) 19:39:30.66 ID:TtkhtxSa(1) AAS
底辺ドカタがアイデンティティ護ろうと必死だけど必死に見られたくない虚栄心とのせめぎ合いが垣間見えてワラw
930: デフォルトの名無しさん [sage] 2022/08/28(日) 19:49:06.93 ID:hYNZdTyV(3/3) AAS
エイリアス無いし
batを使いたいなら騙しながらやるしかないだろ
931: デフォルトの名無しさん [sage] 2022/08/29(月) 03:05:26.48 ID:Rm8LZ6WJ(1) AAS
>>924
ほんとはvbsが起動も速度も速い上にバッチやps程変な癖もなくていわゆるVB脳程度の知識でそこそこのものが手軽に書けるんだよ
ただこの板にあるスレが一言で言えば気持ち悪いから誰も触れないのよ
よくvbsはオワコンて言われるけど少なくとも2029年までは標準で使えるから安心していいよ
932(1): デフォルトの名無しさん [sage] 2022/08/29(月) 04:54:03.93 ID:DAjO1ugz(1) AAS
@echo off &setlocal
call :LEN
echo %errorlevel%
call :LEN a
echo %errorlevel%
call :LEN ab
echo %errorlevel%
call :LEN abcde
echo %errorlevel%
call :LEN "abcdefg"
echo %errorlevel%
pause &exit /b
:LEN
setlocal enabledelayedexpansion
set "s=%~1"
if not defined s goto :EOF
set /a "n=8192" &rem "1<<13"
for /L %%i in (12,-1,0) do set /a "a=n-(1<<%%i)" &echo n:!n!, a:!a! &for %%j in (!a!) do if "!s:~%%j,1!"=="" set n=!a!
exit /b %n%
>>919 さんのこれ凄いね
関数っぽく使えるようサブルーチン化と変数確認のechoさせてみたけど
バッチでの文字数カウントとしては最強じゃね?
933: デフォルトの名無しさん [sage] 2022/08/29(月) 07:10:34.83 ID:ZvttE7Ov(1) AAS
変数に代入出来るのが8000でも
set/pで入力出来るのは1000ほどしかないな
文字数が多いと色々と落とし穴ありそう
934: デフォルトの名無しさん [sage] 2022/08/30(火) 16:27:10.19 ID:2X2Lv8NW(1) AAS
>>932 更に分かりやすくしてみた
for /L %%i in (12,-1,0) do set /a "b=1<<%%i, a=n-b" &set /p<nul="a:[!a!] = n:[!n!] - (1<<%%^i:[%%i]):[!b!] " &for %%j in (!a!) do if "!s:~%%j,1!"=="" (set "n=!a!" &echo 文字:無い) else echo 文字:在る
935: デフォルトの名無しさん [sage] 2022/08/30(火) 20:51:26.64 ID:Qtk7w0l/(1) AAS
もう質問者はいないぞ
936(2): デフォルトの名無しさん [sage] 2022/08/30(火) 23:17:38.91 ID:+Bm8wCSm(1) AAS
素人なんだけど >>919 みたいなのってプログラマだったら知っていて当然の定番のロジック?アルゴリズム?だったりするん?
937: デフォルトの名無しさん [sage] 2022/08/31(水) 00:08:53.66 ID:F2h2Wpm0(1) AAS
>>936
やってることはただの2分探索だよ
アルゴリズムの本とか一通り読んでれば思いつくよ
特にシフト使ったちまちましたことは組み込みプログラマが得意だろう
938: デフォルトの名無しさん [sage] 2022/08/31(水) 05:05:19.96 ID:I3t0py3T(1) AAS
>>936
アルゴリズム自体はまあ知ってて当然レベル
それをバッチで実装するのはなかなか凄いと思う
939: デフォルトの名無しさん [sage] 2022/08/31(水) 06:19:56.53 ID:IktOvXlL(1/2) AAS
個人的にはforの入れ子がおもしろい。そんな方法があるのかと思った。
普通そこはcallを考えるけど、そうすると速度が落ちるのかな
940(1): デフォルトの名無しさん [sage] 2022/08/31(水) 20:20:14.08 ID:TgQJCwr4(1) AAS
言語にっよっては文字数を数える関数とかがあるけど、こういう手法を駆使してるん?
941: デフォルトの名無しさん [sage] 2022/08/31(水) 21:42:17.85 ID:/4IK1Kkc(1) AAS
%%iをカウントダウンさせて変数一つ省略させてるのが美しいわ
942: デフォルトの名無しさん [sage] 2022/08/31(水) 23:00:05.56 ID:dYVvh+jC(1) AAS
>>940
頭から数えるか、文字列型に文字数の情報も持たせてる
x文字目を1文字切り出して有るか無いかっていうのは結局言語側で文字数わかってないとだめなわけで
943: デフォルトの名無しさん [sage] 2022/08/31(水) 23:03:12.74 ID:FwIzrDsl(1) AAS
可変長の文字コードが一般的だから、先頭から数えないと文字数はわからない
944(1): デフォルトの名無しさん [sage] 2022/08/31(水) 23:25:40.84 ID:8OAd82SA(1) AAS
942の言う通り言語や型によっては文字数を予め持たせてるよ
最初に一度だけカウントしてメモっておけば何度も数え直す必要がない
945: デフォルトの名無しさん [sage] 2022/08/31(水) 23:41:16.72 ID:IktOvXlL(2/2) AAS
C言語のstrlenだと単純に先頭から0を探すだけ
末尾以降のメモリは0とは限らない。ゴミだらけ
946: デフォルトの名無しさん [sage] 2022/09/01(木) 05:31:13.24 ID:dRjt3+vQ(1) AAS
>>944
文字数を保持してる言語ってあるの?
たいていバイト数だと思ったけど
947: デフォルトの名無しさん [sage] 2022/09/01(木) 10:54:06.41 ID:KDf3jCCr(1/2) AAS
たぶんだけど
内部表現がUTF-8みたいな可変長(Perl等)ならバイト数じゃなくて文字数で持ってると思う。
内部表現がUTF-16みたいな固定長(.NET等)でバイト数÷2が文字数になる言語だと、
「取得毎に÷2(右シフト)の負荷」をとるか
「常に文字数保持のメモリ消費」をとるかは言語による気がする。※まあ後者かな。
948: デフォルトの名無しさん [sage] 2022/09/01(木) 11:14:11.70 ID:BOpcWEhd(1/2) AAS
if definedはあるが、if not definedはエラーになることを発見した
949(1): デフォルトの名無しさん [sage] 2022/09/01(木) 11:34:31.15 ID:KDf3jCCr(2/2) AAS
ならんが
950: デフォルトの名無しさん [sage] 2022/09/01(木) 12:10:09.24 ID:BOpcWEhd(2/2) AAS
>>949
すみません、ミスでした
おかしいな
951: デフォルトの名無しさん [] 2022/09/01(木) 14:31:17.40 ID:EyFcbtIt(1/5) AAS
初心者です
[曲名].mp3 の様に
曲名をカッコで囲んでファイル名を出力する方法はどうしたらよいのでしょうか?
-o "%%(title)s.%%(ext)s"
ここの()を[]に変えてもダメでした
お時間ある方いらっしゃいましたらよろしくお願い致します。
952: デフォルトの名無しさん [sage] 2022/09/01(木) 14:33:44.02 ID:5NMGBymZ(1/2) AAS
多分こっちのスレで聞いた方がいい
【DL】動画の保存方法総合スレ【アダルト禁止】part51
2chスレ:streaming
953: デフォルトの名無しさん [] 2022/09/01(木) 14:37:30.33 ID:EyFcbtIt(2/5) AAS
952さん
教えてくれてありがとうございます
失礼いたしました
954: デフォルトの名無しさん [] 2022/09/01(木) 14:41:09.20 ID:EyFcbtIt(3/5) AAS
教えて頂いた所は書き込みできませんでした><;
955: デフォルトの名無しさん [sage] 2022/09/01(木) 14:42:55.59 ID:5NMGBymZ(2/2) AAS
今出先だから試せないけど多分こうかな
-o "[%%(title)s].%%(ext)s"
956: デフォルトの名無しさん [] 2022/09/01(木) 14:52:40.78 ID:EyFcbtIt(4/5) AAS
599さん出来ました♪
親切に教えてくれてありがとうございました
感謝です(*- -)(*_ _)ペコリ
957: デフォルトの名無しさん [] 2022/09/01(木) 14:53:42.59 ID:EyFcbtIt(5/5) AAS
955さんでした...ごめんなさい
958(1): デフォルトの名無しさん [sage] 2022/09/01(木) 21:32:28.04 ID:P4dKpTai(1) AAS
文字列処理は、Ruby で書いて、
コマンドプロンプト・Power Shell から呼び出す
これが間違いない。
バグる事もない
日本の人工衛星でも、文字列処理の部分を組み込みのmruby で作ったりする。
こういう処理をCで作ると、ややこしくてバグるから
VBS, WSH のピッコロ大魔王は、すごい技術者だよ。
スクレイピングでも、Rubyのクラス・モジュールみたいに、VBScript で作ったりする
VBS から、.NET とか呼び出せるのか
959: デフォルトの名無しさん [sage] 2022/09/02(金) 06:32:40.82 ID:s4Jk55Dy(1) AAS
たかがその程度でそんなことする必要ない
960(2): デフォルトの名無しさん [sage] 2022/09/02(金) 07:22:53.60 ID:m72Ydqk7(1/2) AAS
RubyってWindowsデフォで処理できんの?Pythonは?
961: デフォルトの名無しさん [sage] 2022/09/02(金) 09:55:08.52 ID:ly4TfMW8(1) AAS
>>960
動くよ
有料オプションなんていらない
962: デフォルトの名無しさん [sage] 2022/09/02(金) 12:18:58.31 ID:m72Ydqk7(2/2) AAS
それいいな
Ruby置いておいて.batから呼び出すの超楽じゃん
963: デフォルトの名無しさん [] 2022/09/03(土) 13:13:17.18 ID:JK72C2wT(1) AAS
mp3をダウンロードして128kにするバッチファイル教えてもらえませんか?
yt-dlpとffpmeg使って色々と試してみてもうまくいきません
ダウンロードしたあとでしたら名前が分かるのでこれで出来たのですけど
ffmpeg -i input.mp3 -vcodec copy -ab 128k output.mp3
964: デフォルトの名無しさん [] 2022/09/03(土) 13:56:15.90 ID:91ZlUxrs(1) AAS
https://gigazine.net/news/20220624-yt-dlp-download-sections/
965: 958 [sage] 2022/09/03(土) 15:43:23.43 ID:X5iiwVOT(1) AAS
>>960
ただし、Python, Ruby などのウェブ系言語は、
インターネット・Linux・UTF-8 用に作られているので、
Windows・shift-jis(CP932)の日本語でバグるかも
だから、Linux用のソースコードを、
MSYS2/MinGW でコンパイルして、Windows用にしたものよりも、
WSL2 で、Linuxを動かしたものの方が安全
これは、UTF-8をCP932に変換せず、そのままUTF-8を使っているから安全
漏れが作った感想では、PowerShell, VBScript よりも、
圧倒的に、Rubyが作りやすい。
Rubyの方が、本なども多いし
966: デフォルトの名無しさん [sage] 2022/09/06(火) 21:18:12.82 ID:RxqiahQJ(1) AAS
pythonでも、いけるのか。うむ。
967: デフォルトの名無しさん [sage] 2022/09/10(土) 02:55:46.45 ID:jyBCEVh6(1) AAS
あっというまにうんこうめ
968: デフォルトの名無しさん [sage] 2022/09/11(日) 18:11:08.37 ID:sXKbUVWc(1) AAS
パイプから文字列受け取ってsetする方法って
echo a|for /f %%a in ('more') do set a=%%a
みたいにforでやるか一旦ファイルに書き出すしか無い?
echo a| set /p a="" <pipe
みたいにリダイレクトに繋げてくれるかパイプで流れてくるものに%$_%とか一時変数っぽいものに割り当ててくれたら良いのに
rg.exeが便利すぎて遊んでてふと思った
969: デフォルトの名無しさん [sage] 2022/09/12(月) 23:31:40.49 ID:JnviOvBd(1) AAS
rgがcmdで使い物にならなくてショック
パイプで受け取る分には-E sjisで出来るんだけどrgからパイプで次に繋げたりリダイレクトで出力するとascii以外の文字は化ける
これcmd上だとどうにもならない?
https://github.com/BurntSushi/ripgrep/blob/master/FAQ.md#pipe-non-ascii-windows
970(1): デフォルトの名無しさん [sage] 2022/09/13(火) 10:43:09.25 ID:C/JjoHd5(1) AAS
文字コードの問題なら
一旦nkf32でも中継させて文字コード変換して読み直すとか?
971(1): デフォルトの名無しさん [sage] 2022/09/13(火) 13:50:58.24 ID:8ckY0WFW(1) AAS
chcp 65001
して全部 utf8 でやっちゃう
utf8 のバッチファイルで行末が2バイト文字だとエラーに
なるんで、そういうのは行末に . とかで回避
972: デフォルトの名無しさん [sage] 2022/09/13(火) 19:02:32.59 ID:BFM47HY2(1) AAS
>>970
試してみたら行けました
でも入力を指定出来ないのがちょっと不安、と思っていたら期待される入力のオプションありました
現状それしか無いかもですね
rgを多段に使う場合は最初と最期だけ変換すればrgの-Eオプションも省けて良いかも
でも手軽さにケチ付いたみたいなのが引っかかります。。
>>971
utf-8だと機能しないコマンドもあるのでその確認がちょっと大変です
お二方ともレスありがとうございました
973: デフォルトの名無しさん [sage] 2022/09/13(火) 20:01:05.07 ID:gJ1f0QwF(1) AAS
ちょっと大変どころじゃないけど
UTF-8とかの時点でPowershell検討しなよ
974(1): デフォルトの名無しさん [sage] 2022/09/14(水) 02:23:02.40 ID:ifExYD0i(1/3) AAS
分かっていると思うけど
nkf等で変換しても変換不可の文字が欠落するので注意
975: デフォルトの名無しさん [sage] 2022/09/14(水) 02:38:59.13 ID:d7brrjLd(1) AAS
えっ?いや全然分かってないです
sjis → utf-8 → sjis
で欠落する文字って在るのでしょうか?
半角カナはxオプションで維持可能でした
976: デフォルトの名無しさん [sage] 2022/09/14(水) 02:51:18.58 ID:ifExYD0i(2/3) AAS
元がsjisならいいと思いますたぶん
977: デフォルトの名無しさん [sage] 2022/09/14(水) 09:41:51.82 ID:t44Y6QQe(1) AAS
>>974
そう、完璧版nkfがあるといい
978: デフォルトの名無しさん [sage] 2022/09/14(水) 09:45:41.31 ID:bQ7RTOjb(1) AAS
コンソールアプリでパイプの時点で色々諦めなきゃね
rg.exeとやらはwinforms版はないの?オプソだよね?
979: デフォルトの名無しさん [sage] 2022/09/14(水) 18:03:36.58 ID:XL8H98jz(1/7) AAS
完璧版nkfとは、どのようなものになるのでしょうか?
UTF-8、UTF-16対応?
文字コードによって存在する文字(というかコード?)にどう対応すればよいのでしょうね?
980(1): デフォルトの名無しさん [sage] 2022/09/14(水) 18:24:17.06 ID:RZxozk25(1) AAS
フォルダ a:\xxx を
a:\yyy の下に移動して
a:\yyy\xxx とするのはどうやりますか?
981: デフォルトの名無しさん [sage] 2022/09/14(水) 19:24:16.59 ID:ifExYD0i(3/3) AAS
move
982: デフォルトの名無しさん [sage] 2022/09/14(水) 19:57:29.62 ID:XL8H98jz(2/7) AAS
move a:\xxx\*.* a:\xxx\yyy
983: デフォルトの名無しさん [sage] 2022/09/14(水) 19:59:06.71 ID:XL8H98jz(3/7) AAS
間違えた。
x move a:\xxx\*.* a:\xxx\yyy
o move a:\xxx\*.* a:\yyy\xxx
984: デフォルトの名無しさん [sage] 2022/09/14(水) 20:02:13.40 ID:XL8H98jz(4/7) AAS
次スレを立てて見ようと思います。
失敗したら、あとのかたお願いします。
985: デフォルトの名無しさん [sage] 2022/09/14(水) 20:05:48.88 ID:XL8H98jz(5/7) AAS
次スレです。
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
後の埋めは、よろしくお願いします。
986: デフォルトの名無しさん [sage] 2022/09/14(水) 20:10:50.57 ID:y9++92To(1) AAS
move a:\xxx a:\yyy
で行けないかな
ダメならxcopyかrobocopyを使う
987: デフォルトの名無しさん [sage] 2022/09/14(水) 22:44:29.10 ID:XL8H98jz(6/7) AAS
rem フォルダyyyが無い場合、フォルダyyyを作成。
md a:\xxx\yyy
rem フォルダxxx下にファイルが有る場合。
move a\xxx\*.* a:\xxx\yyy
988: デフォルトの名無しさん [sage] 2022/09/14(水) 22:45:56.57 ID:XL8H98jz(7/7) AAS
コピーの場合、
move a\xxx\*.* a:\xxx\yyy
のmoveをcopyにして下さい。
989: デフォルトの名無しさん [sage] 2022/09/15(木) 07:10:21.66 ID:PHto6B20(1) AAS
md a:\yyy
if not exist a:\yyy\xxx (move a:\xxx a:\yyy) else (
if exist a:\yyy\xxx\nul (
move /-y a:\xxx\* a:\yyy\xxx
for /d %%i in (a:\xxx\*) do move "%%i" a:\yyy\xxx
rd a:\xxx ))
既存のため移動できない物はa:\xxxに残るので名前変更して再実行
990: デフォルトの名無しさん [sage] 2022/09/15(木) 12:53:39.30 ID:EPORcPim(1/11) AAS
それで、>>980さんは、解決したのでしょうか。
後は、埋めてしまいますよ。
991: デフォルトの名無しさん [sage] 2022/09/15(木) 12:54:46.51 ID:EPORcPim(2/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
992: デフォルトの名無しさん [sage] 2022/09/15(木) 12:55:30.56 ID:EPORcPim(3/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
993: デフォルトの名無しさん [sage] 2022/09/15(木) 12:55:52.67 ID:EPORcPim(4/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
994: デフォルトの名無しさん [sage] 2022/09/15(木) 12:56:19.20 ID:EPORcPim(5/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
995: デフォルトの名無しさん [sage] 2022/09/15(木) 12:56:42.68 ID:EPORcPim(6/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
996: デフォルトの名無しさん [sage] 2022/09/15(木) 12:57:04.06 ID:EPORcPim(7/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
997: デフォルトの名無しさん [sage] 2022/09/15(木) 12:57:29.87 ID:EPORcPim(8/11) AAS
次スレ
【.cmd】 バッチファイルスクリプト %15 【.bat】
2chスレ:tech
998: デフォルトの名無しさん [sage] 2022/09/15(木) 13:08:18.56 ID:EPORcPim(9/11) AAS
埋め
999: デフォルトの名無しさん [sage] 2022/09/15(木) 13:08:47.98 ID:EPORcPim(10/11) AAS
埋め
1000: デフォルトの名無しさん [sage] 2022/09/15(木) 13:09:27.18 ID:EPORcPim(11/11) AAS
また、いつの日にか、相まみえん。
1001(1): 1001 [] ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 761日 6時間 9分 1秒
1002(1): 1002 [] ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s