【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
上下前次1-新
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')"
91: 2022/12/01(木)22:14 ID:M8gPga1Y(1) AAS
もうここpowershellスレにしたら
92: 2022/12/01(木)22:30 ID:CyN7Asjt(2/2) AAS
過去スレにBATがあったと思って探してみた
何故かそのスレは過去ログに保存されてないので別サイトの方を示しとく
外部リンク[htm]:geolog.mydns.jp
ここのレス番65あたり
93(1): 2022/12/02(金)07:27 ID:elckNyGo(1/2) AAS
>>87
set /a d=20221201
set /a f=10000,g=100,h=8869,i=69,j=278803
set /a "n=d-1,n-=!(n%%f-g)*h,c=n/f"
set /a "a=j-!(c%%4)+!(c%%100)-!(c%%400)<<6"
set /a "n-=!(n%%g)*(i+(a>>(n%%f/g)*2&3))"
echo %n%
94: 2022/12/02(金)21:24 ID:JHo2A9dA(1) AAS
日時の操作に関してはもう便利すぎてpowershellへ丸投げしたほうがいいな
powershellというか.NETのDateTimeのメソッドではあるが
>>93とか何してるか本当に合ってるのかわからんような事をするよりは
95: 2022/12/02(金)22:23 ID:elckNyGo(2/2) AAS
確かにそうだな。計算できん奴はやめとけ
96(2): 2022/12/04(日)15:45 ID:xdG8GXCM(1) AAS
変数1の値を変数2にsetするとエラーになります。
値は文字列で不定ですが、記号文字が原因のようです。
遅延展開ではありません。
うまい方法はないですか。
97(1): 2022/12/04(日)20:44 ID:pNrDPWEq(1) AAS
ダメな質問の見本になってるぞ
書ける範囲でいいから、再現性のある最低限のコードと
エラーメッセージとその時の実際の変数値を書いてくれ
98: 2022/12/05(月)19:02 ID:RxlUOQVH(1) AAS
>>96
原因の記号文字は何? ()<>&|%!"^ とか?
引用符(")が含まれていない場合は set "変数2=%変数1%"
含まれている場合はキャレット(^)で全部エスケープ
でもこれ「うまい方法」とは思えないけど
set /p 変数1=変数1=
set "変数2=" & set "CARET=^"
setlocal enabledelayedexpansion
:LOOP
set 変数2=!変数2!!CARET!!変数1:~0,1!
set 変数1=!変数1:~1!
if defined 変数1 goto LOOP
endlocal & set 変数2=%変数2%
rem 結果を確認する
set 変数1
set 変数2
99: 2022/12/05(月)23:44 ID:Xw9Qnajp(1) AAS
「変数1の値を変数2にset」という意味では良い方法だと思う。
でも変数間でコピーだけして終わりって事はまずないから
あとは>>96が自分のコードにどう馴染ませて組み込んだりヒントにできるかだろうなぁ。
100(2): 2022/12/06(火)10:31 ID:VnO+filq(1) AAS
いやこれだめだろ
試した?
101: 2022/12/06(火)11:36 ID:vjJKyhqV(1) AAS
続きはpowershellで
102(2): 2022/12/06(火)22:47 ID:LWPkE6+S(1) AAS
setlocal enabledelayedexpansion
for /f "delims=" %%i in ("set var2=!var1!") do endlocal & %%i
103: 2022/12/07(水)08:08 ID:6/SG3KPg(1) AAS
>>100
不具合は無さそう
>>102
これシンプルでいいね。エスケープ不要だし
104: 2022/12/07(水)14:11 ID:CzrTyJD4(1) AAS
何でも答えてくれるChatGPTに質問して教えてもらう時代になるかも
105: 2022/12/17(土)08:43 ID:P7hTh7GB(1) AAS
%*を他の変数に入れる方法あります?
106: 2022/12/17(土)13:02 ID:z3eWXHPR(1) AAS
set
107: 2022/12/17(土)13:56 ID:hGrODwcv(1) AAS
>>97
108: 2022/12/18(日)11:04 ID:3jhv+1oP(1) AAS
batch.cmd を batch.cmd echo ' ^& echo ^" ^& echo ! として実行した場合の
%*を他の変数に入れる方法あります?
109: 2022/12/18(日)14:23 ID:8FmKOvk1(1) AAS
方法は無いよ。たぶん
引数はやめてファイルで渡すか、set /p で入力したら
上下前次1-新書関写板覧索設栞歴
あと 710 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.019s