【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.net/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
47: デフォルトの名無しさん [sage] 2022/11/03(木) 06:22:30.68 ID:7S7IyYLz @echo off :x set "a=%~n1" ren "%~1" "%a:~0,4%%a:~8%%~x1" shift if not "%~1"=="" goto x ファイル名やフォルダ名が英数字だけならこれでいけるんじゃね http://mevius.5ch.net/test/read.cgi/tech/1663153441/47
48: デフォルトの名無しさん [sage] 2022/11/03(木) 13:02:59.28 ID:yr3S2O5F >>45 > 5文字目から8文字目まで削除 set /? 1~4 %vv:~0,4% 9~ %vv:~8% > set vv=%%i > call ren %%i %%vv:~4%% set "vv=%%~ni" call ren "%%~i" "%%vv:~0,4%%%%vv:~8%%%%~xi" %%~ni %%~xi のnとかxは for /? なるべくcall使わない方が速いのでファイル名に !文字が無いなら setlocal enabledelayedexpansion して遅延展開使え 対象ファイル数が多くないとかで引数の文字数制限に掛からないのなら >>47 のやり方が入れ子にならず良い http://mevius.5ch.net/test/read.cgi/tech/1663153441/48
49: デフォルトの名無しさん [sage] 2022/11/03(木) 13:10:19.17 ID:P2O5CHdk 東京都、富山県、ネバダ州、東京都、東京都、雲南省、ネバダ州、東京都、みたいな数百行のfindの標準出力があって何種類の出力があるのかだけ欲しいんだけど何かスマートな方法ないですか http://mevius.5ch.net/test/read.cgi/tech/1663153441/49
50: デフォルトの名無しさん [sage] 2022/11/03(木) 14:00:45.43 ID:sS4Fs93N スマートな方法なんてバッチに無いから別のスクリプトあたれ バッチでやるなら以下みたいな感じに一意なものだけ書き出して最後に行数見るか書き出した回数を数えるか copy nul $tmp.txt for /f %%a in (findの結果とやら) do find "%%a" $tmp.txt >nul || >>$tmp.txt echo %%a for /f "delims=:" %%a in ('findstr /n "^" $tmp.txt') do set n=%%a echo %n% 新大阪と大阪みたいに項目名を含む別項目があるならfindstr /r /c:"^%%a$" http://mevius.5ch.net/test/read.cgi/tech/1663153441/50
51: デフォルトの名無しさん [sage] 2022/11/03(木) 15:21:55.26 ID:PVTx0HrP それほどスマートじゃないけどWSHを(batに埋め込んで)使う方法 (WSHには連想配列の要素数をカウントするものがないのでループで回してカウント) (powershellと使う方法がいいかもしれないがpowershellはイニシャルコストが大きいのでよく使う人向き) @if (0)==(0) echo off cscript //nologo /e:jscript "%~f0" < data.txt rem findstr "." data.txt|cscript //nologo /e:jscript "%~f0" goto :eof @end var table={}, data, count=0; while(!WScript.StdIn.AtEndOfStream) { data = WScript.StdIn.ReadLine(); if (data.length) { table[data] += 1; WScript.Echo(data); } } for (i in table) { count++; } WScript.Echo(count); http://mevius.5ch.net/test/read.cgi/tech/1663153441/51
52: デフォルトの名無しさん [sage] 2022/11/03(木) 15:28:23.28 ID:/STCGL2q 46様、47様、48様 >>44です。 早速のご回答&アドバイス、ありがとうございました。 どの方法でもうまくrenameでき、とても参考になりました。 ただ、for文に組込むと、1つ目のファイルだけ、 2回処理が実行されてしまいます。 例えば、以下のバッチ ------------------------------------------- for %%i in (*.m4a) do ( set "vv=%%~ni" call ren "%%~i" "%%vv:~0,4%%%%vv:~8%%%%~xi" ) ------------------------------------------- を実行すると、 a1234567890a.m4a→a123.m4a ←2回 b1234567890b.m4a→b123890b.m4a c1234567890c.m4a→c123890c.m4a となってしまいます。 これは、私のfor文の使用法に誤りがあると考えられ ますので、自力解決すべく調べているのですが… 参考になりそうなサイトなどご存知でしたら、教えて頂けませんでしょうか? 何度も申し訳ありません。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/52
53: デフォルトの名無しさん [sage] 2022/11/03(木) 15:30:10.92 ID:IcpXc6LC powershell -Command "('東京都','富山県','ネバダ州','東京都','東京都','雲南省','ネバダ州','東京都' | Sort-Object | Get-Unique ).Count" http://mevius.5ch.net/test/read.cgi/tech/1663153441/53
54: デフォルトの名無しさん [sage] 2022/11/03(木) 15:31:53.88 ID:IcpXc6LC findの標準出力ってことはこうだな powershell -Command "(find 引数 | Sort-Object | Get-Unique ).Count" http://mevius.5ch.net/test/read.cgi/tech/1663153441/54
55: デフォルトの名無しさん [sage] 2022/11/03(木) 15:38:59.81 ID:PVTx0HrP あ、+= 1には意味なかったな http://mevius.5ch.net/test/read.cgi/tech/1663153441/55
56: デフォルトの名無しさん [sage] 2022/11/03(木) 16:10:12.19 ID:7S7IyYLz >>52 だから for (*) do ren ~ はお勧めしない 同じファイルに複数回処理する可能性がある ren を move にして別のフォルダに送れ !文字がある時は for の内部で遅延展開設定、解除しろ http://mevius.5ch.net/test/read.cgi/tech/1663153441/56
57: デフォルトの名無しさん [sage] 2022/11/03(木) 16:37:27.42 ID:7S7IyYLz for /f "delims=" %%i in ('dir *') do (ren ~ でもいいかな http://mevius.5ch.net/test/read.cgi/tech/1663153441/57
58: デフォルトの名無しさん [sage] 2022/11/03(木) 16:40:46.92 ID:7S7IyYLz すまんdir/bだ http://mevius.5ch.net/test/read.cgi/tech/1663153441/58
59: デフォルトの名無しさん [sage] 2022/11/03(木) 17:36:43.52 ID:sJbSZrhN cmd には split | sort | uniq | wc みたいなコマンドはないの? http://mevius.5ch.net/test/read.cgi/tech/1663153441/59
60: デフォルトの名無しさん [sage] 2022/11/03(木) 17:41:34.26 ID:7S7IyYLz ない http://mevius.5ch.net/test/read.cgi/tech/1663153441/60
61: デフォルトの名無しさん [sage] 2022/11/03(木) 18:18:22.55 ID:P2O5CHdk 皆さんありがとうスマートっていうか単に速度の問題なのでどれが速いか競走させてみます http://mevius.5ch.net/test/read.cgi/tech/1663153441/61
62: デフォルトの名無しさん [sage] 2022/11/03(木) 18:56:34.58 ID:NbsIPyEs >>59 少なくとも標準では無いね まあ使いたいならwslに行くか同等の機能をPowerShellで書くとかかな http://mevius.5ch.net/test/read.cgi/tech/1663153441/62
63: デフォルトの名無しさん [sage] 2022/11/03(木) 23:17:13.75 ID:0ov2k6Uz >>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! http://mevius.5ch.net/test/read.cgi/tech/1663153441/63
64: デフォルトの名無しさん [sage] 2022/11/12(土) 20:19:55.55 ID:/WV4ttu0 set /p で異体字セレクタ(IVS)を入力できない IMEパッドが作動しない いちいちメモ帳からコピペ入力するしかないのか 表示も化けてるし… http://mevius.5ch.net/test/read.cgi/tech/1663153441/64
65: デフォルトの名無しさん [sage] 2022/11/12(土) 20:44:49.08 ID:/WV4ttu0 IMEパッドはダメなので、文字コード+F5 でいけた http://mevius.5ch.net/test/read.cgi/tech/1663153441/65
66: デフォルトの名無しさん [sage] 2022/11/13(日) 19:33:26.85 ID:sU7z5EJX >>64 Windows Terminal IMEパッド可 異体字(IVS)表示可(対応フォントのみ) cmdの標準ターミナルは仕様が古いまま放置されている http://mevius.5ch.net/test/read.cgi/tech/1663153441/66
67: デフォルトの名無しさん [sage] 2022/11/17(木) 22:22:21.92 ID:k+rrgD4B 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 http://mevius.5ch.net/test/read.cgi/tech/1663153441/67
68: デフォルトの名無しさん [sage] 2022/11/18(金) 07:02:24.39 ID:LiWOBYzs >>66 サンクス 入力時に文字化けするので確認できない echoで表示されるが文字の両側のスペースが気持ち悪い でも標準画面よりはマシかな。おれは使わないけど http://mevius.5ch.net/test/read.cgi/tech/1663153441/68
69: デフォルトの名無しさん [sage] 2022/11/21(月) 20:53:34.41 ID:+ccbL4tM カーソルの位置を知る方法はありますか? for /F %%E in ('cmd ^< nul /D /K prompt $E') do set esc=%%E set /P CPR=%esc%[6n だとenterキー待ちで止まります。enterを押せばCPRに結果が入りますが 押さずに結果を得る方法はないでしょうか。 あるいはまったく別の方法でカーソルの位置を知る方法はないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/69
70: デフォルトの名無しさん [sage] 2022/11/21(月) 21:55:41.71 ID:o6gng8CJ 手段の拘りなければこんなんとかで。 powershell -nop -c "[Console]::CursorTop; [Console]::WindowTop;" http://mevius.5ch.net/test/read.cgi/tech/1663153441/70
71: デフォルトの名無しさん [sage] 2022/11/22(火) 09:23:33.75 ID:IBEEH7ii 過去にも似たような話があったなあ 何かでenterキーの入力を省略したいって 結局、うまい方法が見つからない http://mevius.5ch.net/test/read.cgi/tech/1663153441/71
72: 69 [sage] 2022/11/22(火) 21:44:34.08 ID:CBUeGsgY なるほど情報ありがとう PowerShell なら [console]::CursorLeft と [console]::CursorTop で取得できるのを確認しました。 PowerShellを呼ぶか全部PowerShellで書くか悩ましい… http://mevius.5ch.net/test/read.cgi/tech/1663153441/72
73: デフォルトの名無しさん [sage] 2022/11/25(金) 01:48:24.17 ID:is72b8Mh コンソールの座標が必要になるってことはGUIを検討すべき時がきたんじゃないか コンソールの画面でいくらがんばっても大したことできんよ http://mevius.5ch.net/test/read.cgi/tech/1663153441/73
74: デフォルトの名無しさん [sage] 2022/11/25(金) 20:54:30.19 ID:YIxTypne そんなたいしたことじゃなくてね 画面に合わせた出力がしたくて行数を知りたかっただけ mode con は WindowsTerminal ではいいけど conhost ではうまくない PowerShellで得られる [console]::WinndowHeight が欲しいのに [console]::BufferHeight が返ってきてしまう それなら %esc%7%esc%[999;999H%esc%[6n%esc%8 みたいなエスケープシーケンスで カーソル位置を使って調べようかと思って で質問した後で気づいたけど 代替画面バッファーに切り替えて mode con すればいいのな まあ PowerShell 一発で取れるなら楽だしもういいかなって でも他の方法があるなら知りたい http://mevius.5ch.net/test/read.cgi/tech/1663153441/74
75: デフォルトの名無しさん [sage] 2022/11/27(日) 05:02:29.30 ID:IKV/PDeN powershellなんぞ使わずとも行数ごとき得る方法はあるぞ 昔はpowershell自体無かったんだからな まあ具体的には思い出せないんだがぐぐれば出てくるだろ http://mevius.5ch.net/test/read.cgi/tech/1663153441/75
76: デフォルトの名無しさん [sage] 2022/11/27(日) 11:26:11.98 ID:nWgXfjD8 いくらぐぐってもファイルの行数を調べるとか画面の行数を変更するしか見つからない… 行数ごときというならぜひ思い出して教えてください http://mevius.5ch.net/test/read.cgi/tech/1663153441/76
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 743 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s