【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
1-

61: 2022/11/03(木)18:18 ID:P2O5CHdk(2/2) AAS
皆さんありがとうスマートっていうか単に速度の問題なのでどれが速いか競走させてみます
62: 2022/11/03(木)18:56 ID:NbsIPyEs(1) AAS
>>59
少なくとも標準では無いね
まあ使いたいならwslに行くか同等の機能をPowerShellで書くとかかな
63: 2022/11/03(木)23:17 ID:0ov2k6Uz(1) AAS
>>49
PowerShellなりでやる内容だとは思うが、どうしてもバッチでやるなら
入力データ(findの結果)をソートして、データの変動を検知したらカウントアップ、でもできる。
ただし入力データに記号(メタキャラ)が含まれる場合はうまく動かない可能性あり。

setlocal EnableDelayedExpansion
set Count=0
set PrevLine=
for /f "delims=" %%A in ('find なんたら ^| sort') do (
if "%%A" neq "!PrevLine!" set /a Count+=1
set "PrevLine=%%A"
)
echo,!Count!
64
(1): 2022/11/12(土)20:19 ID:/WV4ttu0(1/2) AAS
set /p で異体字セレクタ(IVS)を入力できない
IMEパッドが作動しない
いちいちメモ帳からコピペ入力するしかないのか
表示も化けてるし…
65: 2022/11/12(土)20:44 ID:/WV4ttu0(2/2) AAS
IMEパッドはダメなので、文字コード+F5 でいけた
66
(1): 2022/11/13(日)19:33 ID:sU7z5EJX(1) AAS
>>64
Windows Terminal
IMEパッド可
異体字(IVS)表示可(対応フォントのみ)

cmdの標準ターミナルは仕様が古いまま放置されている
67: 2022/11/17(木)22:22 ID:k+rrgD4B(1) AAS
conhostも放置されずに結構手がはいってる
𠮷とか🐕とかのサロゲートペアも表示されるようになったし
エスケープシーケンスで画面のサイズが変えられるようになった

> sigcheck c:\windows\system32\conhost.exe
Sigcheck v2.71 - File version and signature viewer
Copyright (C) 2004-2018 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\windows\system32\conhost.exe:
Verified: Signed
Signing date: 7:59 2022/11/05
Publisher: Microsoft Windows
Company: Microsoft Corporation
Description: Console Window Host
Product: Microsoftョ Windowsョ Operating System
Prod version: 10.0.22621.675
File version: 10.0.22621.675 (WinBuild.160101.0800)
MachineType: 64-bit
68: 2022/11/18(金)07:02 ID:LiWOBYzs(1) AAS
>>66 サンクス
入力時に文字化けするので確認できない
echoで表示されるが文字の両側のスペースが気持ち悪い
でも標準画面よりはマシかな。おれは使わないけど
69
(1): 2022/11/21(月)20:53 ID:+ccbL4tM(1) AAS
カーソルの位置を知る方法はありますか?

for /F %%E in ('cmd ^< nul /D /K prompt $E') do set esc=%%E
set /P CPR=%esc%[6n

だとenterキー待ちで止まります。enterを押せばCPRに結果が入りますが
押さずに結果を得る方法はないでしょうか。
あるいはまったく別の方法でカーソルの位置を知る方法はないでしょうか。
70: 2022/11/21(月)21:55 ID:o6gng8CJ(1) AAS
手段の拘りなければこんなんとかで。
powershell -nop -c "[Console]::CursorTop; [Console]::WindowTop;"
71: 2022/11/22(火)09:23 ID:IBEEH7ii(1) AAS
過去にも似たような話があったなあ
何かでenterキーの入力を省略したいって
結局、うまい方法が見つからない
72: 69 2022/11/22(火)21:44 ID:CBUeGsgY(1) AAS
なるほど情報ありがとう
PowerShell なら [console]::CursorLeft と [console]::CursorTop で取得できるのを確認しました。
PowerShellを呼ぶか全部PowerShellで書くか悩ましい…
73: 2022/11/25(金)01:48 ID:is72b8Mh(1) AAS
コンソールの座標が必要になるってことはGUIを検討すべき時がきたんじゃないか
コンソールの画面でいくらがんばっても大したことできんよ
74
(1): 2022/11/25(金)20:54 ID:YIxTypne(1) AAS
そんなたいしたことじゃなくてね
画面に合わせた出力がしたくて行数を知りたかっただけ

mode con は WindowsTerminal ではいいけど conhost ではうまくない
PowerShellで得られる [console]::WinndowHeight が欲しいのに
[console]::BufferHeight が返ってきてしまう
それなら %esc%7%esc%[999;999H%esc%[6n%esc%8 みたいなエスケープシーケンスで
カーソル位置を使って調べようかと思って

で質問した後で気づいたけど
代替画面バッファーに切り替えて mode con すればいいのな
まあ PowerShell 一発で取れるなら楽だしもういいかなって
でも他の方法があるなら知りたい
75
(1): 2022/11/27(日)05:02 ID:IKV/PDeN(1) AAS
powershellなんぞ使わずとも行数ごとき得る方法はあるぞ
昔はpowershell自体無かったんだからな
まあ具体的には思い出せないんだがぐぐれば出てくるだろ
76: 2022/11/27(日)11:26 ID:nWgXfjD8(1/2) AAS
いくらぐぐってもファイルの行数を調べるとか画面の行数を変更するしか見つからない…
行数ごときというならぜひ思い出して教えてください
77: 2022/11/27(日)12:43 ID:WeJVO7HI(1/2) AAS
powershell (get-host).ui.rawui.windowsize
powershell (get-host).ui.rawui.windowsize.height
powershell (get-host).ui.rawui.windowsize.width
78: 2022/11/27(日)17:27 ID:fMz//05T(1/2) AAS
mode か?
79
(1): 2022/11/27(日)18:49 ID:WeJVO7HI(2/2) AAS
for /f "tokens=3" %%i in ('reg query HKCU\Console /f WindowSize^|findstr WindowSize') do set h=%%i
set /a h=%h:~0,-4%
echo %h%
80: 2022/11/27(日)19:34 ID:fMz//05T(2/2) AAS
Consoleにサブキーがいっぱいあるな
81: 2022/11/27(日)21:48 ID:nWgXfjD8(2/2) AAS
PowerShellを使う方法もmodeを使う方法も >>74 で既出
それ以外の方法があったと >>75 は言ってるようなのだが…
なお reg を使う >>79 は今のウインドウのサイズじゃないから失格かなあ
82: 2022/11/28(月)00:00 ID:so4XQ+4A(1) AAS
more で画面毎に止まってくれるが
あれはどこから画面行数情報を得ているのだろう
83
(1): 2022/11/28(月)23:31 ID:YeZSlVdS(1) AAS
PowerShell を使っていいなら

for /F "tokens=2 delims=[;" %%L in ('pwsh -nop -c "[console]::Error.Write(\"`e7`e[999^;999H`e[6n`e8\"); [console]::Error.Flush(); do { $k = [console]::ReadKey().KeyChar; } until ($k -eq \"R\"); \"\""') do echo LINES: %%L

Windows PowerShell だと `e が使えないからもう少しごちゃっとする
84: 2022/11/29(火)22:16 ID:noJ3pHan(1) AAS
ぐぐって出てこないならもうpowershell使うしかないんじゃね
>>83お前こんな糞コード晒す前にちょっと考えろよ頼むよ白けるわ
85: 2022/11/29(火)22:25 ID:WKccTgje(1) AAS
ウインドウの行数を調べる方法まとめ

mode(とcmd)を使う方法
for /F %%E in ('cmd ^< nul /D /K prompt $E') do (
  set < nul /P =%%E[?1049h
  set LINES=
  for /F "tokens=2 delims=:" %%L in ('mode con') do (
    if not defined LINES set /A LINES=%%L
  )
  set < nul /P =%%E[?1049l
)

PowerShellを使う方法
for /F %%L in ('pwsh -nop -c "[console]::WindowHeight"') do set LINES=%%L

エスケープシーケンス(とPowerShell)で頑張る方法
for /F "tokens=2 delims=[;" %%L in ('pwsh -nop -c "[console]::Error.Write(\"`e7`e[999^;999H`e[6n`e8\"); [console]::Error.Flush(); do { $k = [console]::ReadKey().KeyChar; } until ($k -eq 'R')"') do set LINES=%%L
86: 2022/11/29(火)23:27 ID:F0R68kvV(1) AAS
エスケープシーケンスはwin10以前だとダメじゃなかったっけ
ansi.sysがwin8.1までは組み込まれない
87
(1): 2022/12/01(木)15:35 ID:a9edrtS0(1) AAS
set d=%DATE:/=%
とやった後、1日前の日付にしたいのですがうまい方法・コマンドないですか

20221201 -> 20221130
20221202 -> 20221201
20220101 -> 20211231
20200301 -> 20200229

うるう年と月末年末に気を付けてif文で分けるしかないのかなと思いますが
case文ってコマンドプロンプトにないですよね
88: 2022/12/01(木)15:58 ID:Z3Gzq7Gr(1) AAS
gotoがある
89: 2022/12/01(木)19:38 ID:gTSnhqIH(1) AAS
計算すれば出来るんだろうけど面倒くさいのでPowerShell使ってる
90: 2022/12/01(木)21:59 ID:CyN7Asjt(1/2) AAS
powershell -c "(get-date).adddays(-1).tostring('yyyyMMdd')"
1-
あと 729 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.013s