拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう
過去スレ
%13 http://mevius.2ch.net/test/read.cgi/tech/1542779527/
%12 http://mevius.2ch.net/test/read.cgi/tech/1489207631/
%11 http://echo.2ch.net/test/read.cgi/tech/1424858999/
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc11.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
http://pc11.2ch.net/test/read.cgi/tech/1178281991/
バッチファイルプログラミング 3.bat
http://pc11.2ch.net/test/read.cgi/tech/1148485555/
バッチファイルプログラミング 2.bat
http://pc8.2ch.net/test/read.cgi/tech/1104911889/
バッチファイルプログラミング質問スレ
http://pc5.2ch.net/test/read.cgi/tech/1040614686/
探検
【.cmd】 バッチファイルスクリプト %14 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
2020/08/15(土) 07:00:26.64ID:f3kW5kCx
272デフォルトの名無しさん
2021/04/10(土) 11:17:28.20ID:QzAXiJxN >>271
ありがとうございます。
そもそも自分のやりたいこと書かずにすみません、
自分の環境なのかうまくうごきませんでした。
batファイルでADから実行している利用者情報をCSVかなにかでエクスポートしようとしていまして
usernameだとログイン中のIDで表示されるので
dsquery user -samid %usernam%
とやって、cn=に出てくる日本語名だけを抽出したかったのですが、
皆さまだったらどのような方法をされるのでしょうか。
ありがとうございます。
そもそも自分のやりたいこと書かずにすみません、
自分の環境なのかうまくうごきませんでした。
batファイルでADから実行している利用者情報をCSVかなにかでエクスポートしようとしていまして
usernameだとログイン中のIDで表示されるので
dsquery user -samid %usernam%
とやって、cn=に出てくる日本語名だけを抽出したかったのですが、
皆さまだったらどのような方法をされるのでしょうか。
273デフォルトの名無しさん
2021/04/10(土) 12:23:55.67ID:bRqDVIlt 現在進行系の質問ありますけど追加質問させてください
for /F %A in ("テスト") do echo %A %A
としたときに「テスト テスト」が出力されますが
「テスト %A」を出したいときはどうすればいいですか?
for /F %A in ("テスト") do echo %A %A
としたときに「テスト テスト」が出力されますが
「テスト %A」を出したいときはどうすればいいですか?
274デフォルトの名無しさん
2021/04/10(土) 12:28:34.76ID:bRqDVIlt 連投すみません
for /F %B in ("テスト") do echo %B %A
もありなんですけど%のエスケープ知りたいです
for /F %B in ("テスト") do echo %B %A
もありなんですけど%のエスケープ知りたいです
275デフォルトの名無しさん
2021/04/10(土) 13:02:42.59ID:lls/f8GA こっちでは dsquery を試せないので推測で
@echo off
for /f "delims==, tokens=2" %%i in ('dsquery user -samid %USERNAM%') do set ver=%%i
echo %ver%
pause
@echo off
for /f "delims==, tokens=2" %%i in ('dsquery user -samid %USERNAM%') do set ver=%%i
echo %ver%
pause
276デフォルトの名無しさん
2021/04/10(土) 13:04:44.20ID:lls/f8GA バッチで実行して
277デフォルトの名無しさん
2021/04/10(土) 13:10:22.83ID:lls/f8GA よくわからんが %USERNAM% でいいの? E は?
278デフォルトの名無しさん
2021/04/10(土) 13:13:27.40ID:IU1rFRRP279デフォルトの名無しさん
2021/04/10(土) 13:39:39.87ID:ULgsRvVE フィルタリング機能はおそまつなので
275のように一旦全部のユーザーをファイルに書き出してやったほうがいい
あとはテキストエディタでも表作製ソフトでもPowershellとかでもいいけど
正規表現でフィルターすればいい
というかdsqueryコマンドにフィルター機能ぐらいありそうなもんだけど
別のコマンドと組み合わせて使うならエスケープ文字は^なので
for 〜 in ('dsquery 〜^|dsget 〜')
275のように一旦全部のユーザーをファイルに書き出してやったほうがいい
あとはテキストエディタでも表作製ソフトでもPowershellとかでもいいけど
正規表現でフィルターすればいい
というかdsqueryコマンドにフィルター機能ぐらいありそうなもんだけど
別のコマンドと組み合わせて使うならエスケープ文字は^なので
for 〜 in ('dsquery 〜^|dsget 〜')
280デフォルトの名無しさん
2021/04/10(土) 13:46:42.23ID:ULgsRvVE unicodeが使われてる可能性もあるので
安全性を取るならbatを使わずにdsqueryの出力を直接ファイルに書いた後に加工するのがいいかも
とかcsvとか言ってるのでどうせエクセルとかで使うんなら
そのまま"CN=〜"の出力を読み込ませたあとで加工とかも出来そうなもんだけど
安全性を取るならbatを使わずにdsqueryの出力を直接ファイルに書いた後に加工するのがいいかも
とかcsvとか言ってるのでどうせエクセルとかで使うんなら
そのまま"CN=〜"の出力を読み込ませたあとで加工とかも出来そうなもんだけど
281デフォルトの名無しさん
2021/04/10(土) 14:16:22.00ID:ULgsRvVE あれ全ユーザーとかじゃなくて一つのユーザーだけなのか
どっちにしろPowershellでやった方が楽だと思うよ
どっちにしろPowershellでやった方が楽だと思うよ
282デフォルトの名無しさん
2021/04/10(土) 20:33:13.55ID:hTFrpgtD >>272 こんな感じかなあ
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /F "tokens=1* delims=," %%I in ( 'dsquery user -samid %usernam%' ) do (
set HEAD=%%I
set TAIL=%%J
:LOOP
if "!HEAD!" == "" goto :NEXT
for /F "tokens=1* delims==" %%I in ( "!HEAD!" ) do (
if "%%I" == "CN" set CN=%%J
)
for /F "tokens=1* delims=," %%I in ( "!TAIL!" ) do (
set HEAD=%%I
set TAIL=%%J
goto :LOOP
)
:NEXT
echo.!CN!
)
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /F "tokens=1* delims=," %%I in ( 'dsquery user -samid %usernam%' ) do (
set HEAD=%%I
set TAIL=%%J
:LOOP
if "!HEAD!" == "" goto :NEXT
for /F "tokens=1* delims==" %%I in ( "!HEAD!" ) do (
if "%%I" == "CN" set CN=%%J
)
for /F "tokens=1* delims=," %%I in ( "!TAIL!" ) do (
set HEAD=%%I
set TAIL=%%J
goto :LOOP
)
:NEXT
echo.!CN!
)
283デフォルトの名無しさん
2021/04/10(土) 22:12:46.25ID:kfNVSQGB284デフォルトの名無しさん
2021/04/11(日) 00:53:55.03ID:X+5g0Z/F >>275
ありがとうございます。%username%ですね Eが抜けました。
CSVはエクセルではなくてserverにOffice入れてないと、adidの日本語名にするのもちょっと骨でした。
ご指摘通りpowershellでできればいいのでしょうが
powershellは出来る人がいないのとバッチが多すぎて一部分を直して運用していました。
ありがとうございます。%username%ですね Eが抜けました。
CSVはエクセルではなくてserverにOffice入れてないと、adidの日本語名にするのもちょっと骨でした。
ご指摘通りpowershellでできればいいのでしょうが
powershellは出来る人がいないのとバッチが多すぎて一部分を直して運用していました。
285デフォルトの名無しさん
2021/04/11(日) 05:12:32.83ID:8j1o2avA for /F %A in ("テスト") do @echo %A %^^A| more
286デフォルトの名無しさん
2021/04/26(月) 14:11:50.54ID:FVrz/3IC 実行中のプロセスのCPUアフィニティを変更するコマンドは何ですか?
タスクマネージャの[詳細]タブで変更したり、
startコマンドの/affinityスイッチは知ってます。
ちなみに、目的はshogigui.exeとaperyに同じコアを使わせないことです。
タスクマネージャの[詳細]タブで変更したり、
startコマンドの/affinityスイッチは知ってます。
ちなみに、目的はshogigui.exeとaperyに同じコアを使わせないことです。
287デフォルトの名無しさん
2021/04/26(月) 16:39:41.34ID:5VqWgajG Vector に LimitCPU とかあるけど使った事ない
288デフォルトの名無しさん
2021/04/26(月) 17:25:33.86ID:vupwGLI3 実行中のプロセスで変更するコマンドって見当たらないな
タスクマネージャーとかのGUIアプリしか見つからない
俺も知りたいわ
タスクマネージャーとかのGUIアプリしか見つからない
俺も知りたいわ
289デフォルトの名無しさん
2021/04/26(月) 18:44:26.08ID:g+6GvbLi SET
powershell -c "(get-process hoge).processoraffinity=1"
GET
powershell -c "get-process hoge|select-object processoraffinity"
powershell -c "(get-process hoge).processoraffinity=1"
GET
powershell -c "get-process hoge|select-object processoraffinity"
290デフォルトの名無しさん
2021/04/26(月) 19:13:44.30ID:g+6GvbLi GET/SETで分けることもないか(代入か否かで)
あと、同じプロセスイメージが複数ある場合の例(psはget-processのalias)
powershell -c "ps chrome|%{$_.processoraffinity}
あと、同じプロセスイメージが複数ある場合の例(psはget-processのalias)
powershell -c "ps chrome|%{$_.processoraffinity}
291デフォルトの名無しさん
2021/04/27(火) 11:42:30.79ID:SlvFgNx9292デフォルトの名無しさん
2021/04/28(水) 18:09:24.25ID:TBHOCaij 実行中のプロセスをキルした後、exeを起動する.batは組めないでしょうか?
ご教授お願いしたいです。
ご教授お願いしたいです。
293デフォルトの名無しさん
2021/04/28(水) 19:31:14.30ID:Sz6ocakQ 実行中のプロセスを全部キルしたら多分Windowsがまともに動かなくなるぞ
294デフォルトの名無しさん
2021/04/29(木) 12:33:19.43ID:UHw0q87H taskkillしてstartすりゃいいんじゃねーの
295デフォルトの名無しさん
2021/04/30(金) 13:18:51.37ID:QntBUF73 プロセスが自爆して自分の死後にexeを起動って意味?
296デフォルトの名無しさん
2021/04/30(金) 13:34:43.19ID:KlpY5+7M >>292
キルしてもすぐ消えないプロセスがあるから失敗するということかな
キルしたらもう一度プロセスが消えたかどうか確認しあればまたキルする
消えたら再起動
live2chは終了やキルしても消えない時がある(ゾンビ)
キルしてもすぐ消えないプロセスがあるから失敗するということかな
キルしたらもう一度プロセスが消えたかどうか確認しあればまたキルする
消えたら再起動
live2chは終了やキルしても消えない時がある(ゾンビ)
297デフォルトの名無しさん
2021/04/30(金) 22:44:43.29ID:1FoMz0PJ 強制終了なんてするもんじゃないのよ
298デフォルトの名無しさん
2021/05/05(水) 17:03:35.09ID:jBlPB1Jr299デフォルトの名無しさん
2021/05/05(水) 17:56:35.30ID:PPo4cFAu killできない場合のことを考えておくことだね
じゃないと無限ループになる
じゃないと無限ループになる
300デフォルトの名無しさん
2021/05/11(火) 09:43:15.42ID:2aTzy8bW %0|%0
301デフォルトの名無しさん
2021/05/11(火) 13:03:03.56ID:Ql061JAF このスレってこういう呪文書く人多いよね
enabledelayedexpansionとかも呪文にしか見えないし
enabledelayedexpansionとかも呪文にしか見えないし
302デフォルトの名無しさん
2021/05/11(火) 13:35:53.83ID:IBnoRfMr にほんでいちばんさむいのはわっかないです
みたいな綴り
みたいな綴り
303デフォルトの名無しさん
2021/05/11(火) 14:14:27.26ID:2aTzy8bW 稚内は平均気温は低いけど最低気温は内陸部に負けるね
304デフォルトの名無しさん
2021/05/11(火) 14:46:36.64ID:XdIg8UA/ enable delayed expansion
305デフォルトの名無しさん
2021/05/11(火) 14:52:11.19ID:0OaQcACp /d- とどっちがいい?
306デフォルトの名無しさん
2021/05/11(火) 20:34:18.03ID:1ruivVGt EnableDelayedExpansionって書けばちょっとだけ見やすくなる
307デフォルトの名無しさん
2021/05/12(水) 02:11:31.96ID:Suipbxh4 CPU温度をコマンドで取得したいのですが、OS標準の方法は無理ですかね
WMI(ACPI)は固定値の温度が返ってきて取得不可でした
OpenHardwareMonitorもダメ(恐らく内部でWMIを呼び出してる)
当然ながらhwmonitorやCoreTempでは取得できますが、値をバッチで取り込みたいんですよね…
WMI(ACPI)は固定値の温度が返ってきて取得不可でした
OpenHardwareMonitorもダメ(恐らく内部でWMIを呼び出してる)
当然ながらhwmonitorやCoreTempでは取得できますが、値をバッチで取り込みたいんですよね…
308デフォルトの名無しさん
2021/05/12(水) 02:33:26.74ID:XehBH/T/ >>307
OpenHardwareMonitorReport
https://github.com/openhardwaremonitor/openhardwaremonitor/issues/776#issuecomment-313606249
OpenHardwareMonitorReport
https://github.com/openhardwaremonitor/openhardwaremonitor/issues/776#issuecomment-313606249
309デフォルトの名無しさん
2021/05/12(水) 20:32:09.46ID:Suipbxh4 >>307
コマンドラインに出力される以外はOpenHardwareMonitorの実行内容と同じ結果でした
1ボードマイコンのlinuxは
cputemp=`cat /sys/class/thermal/thermal_zone0/temp`
とかで簡単に温度が取れるのになんでじゃろ
コマンドラインに出力される以外はOpenHardwareMonitorの実行内容と同じ結果でした
1ボードマイコンのlinuxは
cputemp=`cat /sys/class/thermal/thermal_zone0/temp`
とかで簡単に温度が取れるのになんでじゃろ
310デフォルトの名無しさん
2021/05/12(水) 20:32:24.17ID:Suipbxh4 >>308でした
311デフォルトの名無しさん
2021/05/12(水) 21:20:49.69ID:MeE+nXbq CoreTempでログ有効にして最終行取るとか
312デフォルトの名無しさん
2021/05/12(水) 22:00:07.42ID:yHTntpLS 出力をgrepとsedあたりで拾えたけど、それじゃダメなの?
BusyBox入れておけばどちらも使える
BusyBox入れておけばどちらも使える
313デフォルトの名無しさん
2021/05/12(水) 23:05:17.82ID:Suipbxh4314デフォルトの名無しさん
2021/05/14(金) 23:44:02.34ID:T4yhaoFz おかげさまでCPU自動温度調節バッチができました
CoreTempのログ出力間隔がなぜかGUIの画面で設定が反映されないのでCoreTemp.iniを直接いじってLogInt=3;にしました
CoreTempのログ出力間隔がなぜかGUIの画面で設定が反映されないのでCoreTemp.iniを直接いじってLogInt=3;にしました
315デフォルトの名無しさん
2021/05/21(金) 14:43:20.40ID:86NTjzBm 引数で✳︎1って書いて実行するとダメで
✳︎✳︎1と書くと実行してくれるというか
✳︎1として認識してくれる
こういうのなんて言うんだっけ?
✳︎✳︎1と書くと実行してくれるというか
✳︎1として認識してくれる
こういうのなんて言うんだっけ?
316デフォルトの名無しさん
2021/05/21(金) 15:45:05.64ID:PeQGb4Ft エスケープ?
317デフォルトの名無しさん
2021/05/21(金) 15:56:12.09ID:Ui9xkSyb エスケープ文字でいいのかな?
どう伝えたらいいか迷ってました。
ありがとうございます!!
どう伝えたらいいか迷ってました。
ありがとうございます!!
318デフォルトの名無しさん
2021/07/29(木) 10:35:28.68ID:Sx47SrPe dir *1* がおかしい表示をする
319デフォルトの名無しさん
2021/07/29(木) 11:36:44.20ID:tRu2KZQa ~1は付いてるだろ
320デフォルトの名無しさん
2021/07/29(木) 17:13:03.84ID:YC90wu7g dir/x *~*
やってみろ
やってみろ
321デフォルトの名無しさん
2021/07/29(木) 19:38:39.37ID:a6W4XitR322デフォルトの名無しさん
2021/07/29(木) 19:43:02.51ID:YC90wu7g 直ぐ上のレスぐらい読め
323デフォルトの名無しさん
2021/07/29(木) 20:44:32.26ID:y5w0GI0N ttps://www.atmarkit.co.jp/fwin2k/win2ktips/1200disable83/disable83.html
324デフォルトの名無しさん
2021/07/29(木) 20:53:42.01ID:YC90wu7g dir /b | find "1"
325デフォルトの名無しさん
2021/08/22(日) 10:21:12.87ID:ROFzyAkg お教え下さい
バッチファイルでなんとかあれこれ作っているんですが、curlとjqコマンドを使ってJSONからURLを拾おうと思っています
curl -X GET %url% | jq -r .body.playback.video_link
そこで、video_linkというkeyにURLが入っているのですが、video_link[0]、video_link[1]とJSONによって何個か入っていることがあります
この時、[1]の方のURLが欲しいのですが抜き出し方が分かりません
もちろん[2]、[3]とURLが入っている事もあります
その時は一番大きい値から取りたいです
for文で配列を回して読んでnullの1個前を取る方法しか無いのでしょうか
ほとんど理解していないレベルですが、お知恵をお貸しいただければ幸いです
バッチファイルでなんとかあれこれ作っているんですが、curlとjqコマンドを使ってJSONからURLを拾おうと思っています
curl -X GET %url% | jq -r .body.playback.video_link
そこで、video_linkというkeyにURLが入っているのですが、video_link[0]、video_link[1]とJSONによって何個か入っていることがあります
この時、[1]の方のURLが欲しいのですが抜き出し方が分かりません
もちろん[2]、[3]とURLが入っている事もあります
その時は一番大きい値から取りたいです
for文で配列を回して読んでnullの1個前を取る方法しか無いのでしょうか
ほとんど理解していないレベルですが、お知恵をお貸しいただければ幸いです
326デフォルトの名無しさん
2021/08/22(日) 12:42:26.74ID:4kURdFV7327デフォルトの名無しさん
2021/08/22(日) 13:17:28.64ID:ROFzyAkg >>326
無知とはいえ、目からウロコです
ありがとうございます、大変助かりました!
あと、もう一つお聞かせ下さい
上のコマンドの結果を変数に入れたかったので、for文でdo setしたのですが、jqを使うと動作しません
for /f "usebackq" %%a (curl -X GET %henkan% | jq -r ".body.playback.video_link[-1].url) do set urlhoge=%%a
とやるとエラーになります
またもやお教えいただけると助かります
よろしくお願い致します
無知とはいえ、目からウロコです
ありがとうございます、大変助かりました!
あと、もう一つお聞かせ下さい
上のコマンドの結果を変数に入れたかったので、for文でdo setしたのですが、jqを使うと動作しません
for /f "usebackq" %%a (curl -X GET %henkan% | jq -r ".body.playback.video_link[-1].url) do set urlhoge=%%a
とやるとエラーになります
またもやお教えいただけると助かります
よろしくお願い致します
328デフォルトの名無しさん
2021/08/22(日) 13:25:20.71ID:ROFzyAkg 連投すみません
自己解決しました
パイプで別のコマンドを繋げてる時はカッコ内では | だけではなく ^| としなくてはならないのですね
自己解決しました
パイプで別のコマンドを繋げてる時はカッコ内では | だけではなく ^| としなくてはならないのですね
329デフォルトの名無しさん
2021/08/22(日) 15:01:46.57ID:QCLSPIvL 式評価が、行読み込み時とfor文の括弧内とで2回行われるので
330デフォルトの名無しさん
2021/08/22(日) 16:39:15.67ID:AGm1+oJ3331デフォルトの名無しさん
2021/08/22(日) 16:48:11.12ID:AGm1+oJ3 inもないし
332デフォルトの名無しさん
2021/08/22(日) 19:09:07.18ID:ROFzyAkg ああすみません、うる覚えてで打ってました
for /f "usebackq" %%a in (`curl -X GET %henkanurl% ^| jq -r .body.playback.video_link[-1].url`) do set m3u8url=%%a
これで無事に動きました
for /f "usebackq" %%a in (`curl -X GET %henkanurl% ^| jq -r .body.playback.video_link[-1].url`) do set m3u8url=%%a
これで無事に動きました
333デフォルトの名無しさん
2021/08/23(月) 21:28:01.99ID:Tt89WUNP >>332
う「ろ」覚えな
う「ろ」覚えな
334デフォルトの名無しさん
2021/08/23(月) 21:36:38.14ID:rdOjiFig ×うろ
○うる
○うる
335デフォルトの名無しさん
2021/08/23(月) 23:16:48.35ID:0ziHLJ5Z 売る
336デフォルトの名無しさん
2021/08/24(火) 07:13:42.95ID:ttKQ7L6u うる覚えは誤り、または誤りから派生した方言だとされている
うろ 空洞
うろん 怪しい、疑わしい、乱雑
から来ているから 「うろ覚え」 が正しいよ
見せて → 見して
などと同様の変化でもあるだろう
見(い)せ(え)て(え) → 見(い)し(い)て(え)
と母音が前の音に引っ張られ変化するパターン
言い易くなるからか幼児語などに多く見られ、都会に比べての昔の田舎の人など知能の劣る者らが用いる傾向がある
うろ 空洞
うろん 怪しい、疑わしい、乱雑
から来ているから 「うろ覚え」 が正しいよ
見せて → 見して
などと同様の変化でもあるだろう
見(い)せ(え)て(え) → 見(い)し(い)て(え)
と母音が前の音に引っ張られ変化するパターン
言い易くなるからか幼児語などに多く見られ、都会に比べての昔の田舎の人など知能の劣る者らが用いる傾向がある
337デフォルトの名無しさん
2021/08/24(火) 07:54:41.61ID:7aPnDOA3 usebackqいらん
338デフォルトの名無しさん
2021/08/24(火) 11:06:35.68ID:A9/4ufwo お世話になります。
---- boo.bat内容 -----
01: @ECHO OFF
02:
03: SET list=A B C D
04: SET n=0
05:
06: FOR %%a IN (%list%) DO (
07: ECHO %n% : %%a
08: SET /A n+=1
09: )
10:
11: ECHO %n%
----- 出力 -----
0 : A
0 : B
0 : C
0 : D
4
出力が、
0 : A
1 : B
2 : C
3 : D
4
とならないのはなぜ?
また、このような出力を得たい時はどうすればよいですか?
---- boo.bat内容 -----
01: @ECHO OFF
02:
03: SET list=A B C D
04: SET n=0
05:
06: FOR %%a IN (%list%) DO (
07: ECHO %n% : %%a
08: SET /A n+=1
09: )
10:
11: ECHO %n%
----- 出力 -----
0 : A
0 : B
0 : C
0 : D
4
出力が、
0 : A
1 : B
2 : C
3 : D
4
とならないのはなぜ?
また、このような出力を得たい時はどうすればよいですか?
339デフォルトの名無しさん
2021/08/24(火) 11:10:52.17ID:7aPnDOA3 set /? 読め
340デフォルトの名無しさん
2021/08/24(火) 11:22:21.23ID:qugHDfsR callでサブルーちんに飛ばせばカウントされるよ
for内は極力シンプルに
for内は極力シンプルに
341デフォルトの名無しさん
2021/08/24(火) 13:03:43.42ID:ttKQ7L6u @echo off &setlocal enabledelayedexpansion
set "LIST=A B C D"
set N=0
for %%a in (%LIST%) do echo !N! : %%~a&set /a N+=1
echo %N%
pause &exit /b
set "LIST=A B C D"
set N=0
for %%a in (%LIST%) do echo !N! : %%~a&set /a N+=1
echo %N%
pause &exit /b
342デフォルトの名無しさん
2021/08/25(水) 00:21:43.26ID:NZXLvzYN 07: CALL ECHO %%n%% : %%%%a
343338
2021/08/25(水) 08:35:00.27ID:CHwZclnY 340,341,342 ありがとう。
遅延?がどうこうって、勉強になりました。
単純な展開ですので、341の !var! 展開を使います。
遅延?がどうこうって、勉強になりました。
単純な展開ですので、341の !var! 展開を使います。
344デフォルトの名無しさん
2021/08/25(水) 12:37:01.24ID:sbFyoxUW ヘルプ読んでから質問してね
345デフォルトの名無しさん
2021/08/25(水) 15:31:20.26ID:Fod5ZYNl CALL %FILENAME%
CALL "%FILENAME%"
職場のパソコン変えたら上で動かなくて下に修正することになったんだけど仕様変更あった?
CALL "%FILENAME%"
職場のパソコン変えたら上で動かなくて下に修正することになったんだけど仕様変更あった?
346デフォルトの名無しさん
2021/08/25(水) 17:21:04.65ID:sbFyoxUW FILENAMEに区切り文字は無い?
347デフォルトの名無しさん
2021/08/25(水) 18:09:16.31ID:eN7VzoDp echo onなら環境変数展開後のコマンドラインが表示される
なにがおかしいのかステップ実行で確認してから質問してくれ
なにがおかしいのかステップ実行で確認してから質問してくれ
348デフォルトの名無しさん
2021/08/25(水) 18:59:42.87ID:rpvOn9yc >>347
ステップ実行して抜き出したのがこれなんだ
ステップ実行して抜き出したのがこれなんだ
349デフォルトの名無しさん
2021/08/25(水) 19:00:54.62ID:rpvOn9yc >>346
Onedrive同期してるフォルダーだからスペースとか今までなかったの増えてるかも
Onedrive同期してるフォルダーだからスペースとか今までなかったの増えてるかも
350デフォルトの名無しさん
2021/08/25(水) 19:11:06.73ID:sbFyoxUW 区切り文字あればそれが原因でしょ
引数がフルパスなら上位フォルダもチェック
念の為にきくけどバッチファイルだよね
引数がフルパスなら上位フォルダもチェック
念の為にきくけどバッチファイルだよね
351デフォルトの名無しさん
2021/08/25(水) 20:18:52.59ID:lzuDi78b >>345
こういう輩は、なんで自分以外がおかしい前提で話をするんだろう?
こういう輩は、なんで自分以外がおかしい前提で話をするんだろう?
352デフォルトの名無しさん
2021/08/25(水) 21:55:38.08ID:Fod5ZYNl >>351
こういうやつって掲示板にいる価値ないわ
こういうやつって掲示板にいる価値ないわ
353デフォルトの名無しさん
2021/08/25(水) 22:12:01.88ID:HCLFH+1o 差し支えの無い範囲でFILENAMEの中身とかバッチを見せればいいのでは?
354デフォルトの名無しさん
2021/08/26(木) 04:16:32.18ID:UZ8JqWyB 少なくともcmdにそんな仕様変更などあるわけ無いからね
355デフォルトの名無しさん
2021/08/26(木) 04:17:53.32ID:UZ8JqWyB 潜在バグが表に出ただけで大騒ぎすな
全部bat作ったお前が悪い
全部bat作ったお前が悪い
356デフォルトの名無しさん
2021/08/26(木) 06:46:44.11ID:dNXcmjRL FILENAME がフルパスで環境変わってスペース含むようになったとかかな
357デフォルトの名無しさん
2021/08/26(木) 16:42:40.02ID:LxJHntSN >>342
%%%%a→%%a
%%%%a→%%a
358デフォルトの名無しさん
2021/08/30(月) 09:59:58.73ID:2ApHZNp2 %FILENAME%に空白が含まれたら、最初の空白までが%1になるの当たり前じゃん
これを考え落とすって、8.3時代で頭の更新が止まったままの化石だね
これを考え落とすって、8.3時代で頭の更新が止まったままの化石だね
359デフォルトの名無しさん
2021/08/30(月) 10:57:48.15ID:cyOwxYqr まあ空白とは限らないけどね
360デフォルトの名無しさん
2021/09/01(水) 12:25:22.16ID:BpsqJM8W 複数動画ファイルをバッチにドロップしてH265で再エンコードしたいです。保存先はドロップ元と同じです。自分で作ってみたのですがうまくいきませんでした。改善点を教えてほしいです
@echo off
%~d1
cd "%~p1"
type nul > ./files.txt
SET NAME_1=%~n1
SET NAME_2=%~n2
SET NAME_3=%~n3
SET NAME_4=%~n4
SET NAME_5=%~n5
:start
IF "%~1"=="" GOTO ffmpegstart
IF "%~x1" == ".MP4" GOTO add
IF "%~x1" == ".mp4" GOTO add
GOTO next
:add
echo file "%~1" >> ./files.txt
:next
SHIFT
GOTO start
:ffmpegstart
ffmpeg.exe -i "%~p1files.txt" -c:v libx265 -c:a copy -crf 22 -tag:v hvc1 "%~p1"%NAME_1%""_k_h265.mp4"
pause
ドロップせずに、パスを書いて実行したら成功はしました。
@echo off
%~d1
cd "%~p1"
type nul > ./files.txt
SET NAME_1=%~n1
SET NAME_2=%~n2
SET NAME_3=%~n3
SET NAME_4=%~n4
SET NAME_5=%~n5
:start
IF "%~1"=="" GOTO ffmpegstart
IF "%~x1" == ".MP4" GOTO add
IF "%~x1" == ".mp4" GOTO add
GOTO next
:add
echo file "%~1" >> ./files.txt
:next
SHIFT
GOTO start
:ffmpegstart
ffmpeg.exe -i "%~p1files.txt" -c:v libx265 -c:a copy -crf 22 -tag:v hvc1 "%~p1"%NAME_1%""_k_h265.mp4"
pause
ドロップせずに、パスを書いて実行したら成功はしました。
361デフォルトの名無しさん
2021/09/01(水) 12:38:53.45ID:3LGwAbit たから echo onにしろっつってんだろ
362デフォルトの名無しさん
2021/09/01(水) 16:04:27.85ID:rR7+iwTB @echo off
:LOOP
if not exist "%~nx1" pause &exit /b
if exist "%~n1_k_h265.mp4" echo ERROR: 出力と同名のファイルが存在します&pause &exit /b
ffmpeg.exe -i "%~nx1" -c:v libx265 -c:a copy -crf 22 -tag:v hvc1 "%~n1_k_h265.mp4"
shift /1
goto :LOOP
:LOOP
if not exist "%~nx1" pause &exit /b
if exist "%~n1_k_h265.mp4" echo ERROR: 出力と同名のファイルが存在します&pause &exit /b
ffmpeg.exe -i "%~nx1" -c:v libx265 -c:a copy -crf 22 -tag:v hvc1 "%~n1_k_h265.mp4"
shift /1
goto :LOOP
363デフォルトの名無しさん
2021/09/01(水) 17:15:47.13ID:79X4wBHs364デフォルトの名無しさん
2021/09/01(水) 17:35:20.23ID:JwKVF6M3 @echo off って完成してからつけるものじゃないのか
最初からあるなんて随分と自信があるんだなぁ
最初からあるなんて随分と自信があるんだなぁ
365デフォルトの名無しさん
2021/09/01(水) 17:36:38.68ID:3SVggb9G だよな
366デフォルトの名無しさん
2021/09/01(水) 21:20:41.59ID:CWQ1EA8H >>362
ありがとうございます!
ありがとうございます!
367デフォルトの名無しさん
2021/09/01(水) 21:32:18.07ID:79X4wBHs 丸投げ質問はやめてくれ
368デフォルトの名無しさん
2021/09/01(水) 21:55:30.34ID:t7KCJs9B なんだ、>>362でうまくいったのか
つまりエラーは変換先のファイルが存在しててffmpegでエラーが出たってことだったのか
俺はエラー内容が書かれてなかったんで他のことを考えてたよ
"あい うえお.mp4"とかパスに半角空白が無くて全角空白がある場合とかね
つまりエラーは変換先のファイルが存在しててffmpegでエラーが出たってことだったのか
俺はエラー内容が書かれてなかったんで他のことを考えてたよ
"あい うえお.mp4"とかパスに半角空白が無くて全角空白がある場合とかね
369デフォルトの名無しさん
2021/09/01(水) 21:55:32.25ID:MGC13/Ge はいw
370デフォルトの名無しさん
2021/09/01(水) 22:51:40.87ID:79X4wBHs -i のところやろ
371デフォルトの名無しさん
2021/09/01(水) 23:03:16.29ID:UTT/foLD 例えば、デスクトップにショートカットを作る。
コマンドプロンプトを起動して、Ruby スクリプト・a.rb を実行する
リンク先
C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/a.rb"
(ただし、書き込めないので、間に@を入れました)
作業フォルダ
C:\Users\Owner\Desktop
例えば、a.rb 内では、以下のようにRubyスクリプト内で、
7zip を起動して、ドロップしたファイルのSHA256 ハッシュ値を求める
command = "C:/Program Files/7-Zip/7z.exe"
option = " h -scrcsha256 "
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
res = `#{ '"' + command + '"' + option + '"' + full_path + '"' }` # コマンド実行
puts full_path + res + ( "-" * 20 )
end
(ARGV は配列で、そこにコマンドライン引数・ドロップしたファイルパスが渡ってくる)
それで、ショートカットに、複数のファイルをdrag&drop すると、
コマンドプロンプトが起動して、各ファイルのハッシュ値が求められる
ただし、空白入りの実行ファイルのパスの前後を、"〜" で囲む事で、
Program Files の空白文字も処理できるが、
ドロップしたファイルパスに空白文字があると、
パスの前後を、"〜" で囲んでも、エラーになって処理できない
コマンドプロンプトを起動して、Ruby スクリプト・a.rb を実行する
リンク先
C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/a.rb"
(ただし、書き込めないので、間に@を入れました)
作業フォルダ
C:\Users\Owner\Desktop
例えば、a.rb 内では、以下のようにRubyスクリプト内で、
7zip を起動して、ドロップしたファイルのSHA256 ハッシュ値を求める
command = "C:/Program Files/7-Zip/7z.exe"
option = " h -scrcsha256 "
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
res = `#{ '"' + command + '"' + option + '"' + full_path + '"' }` # コマンド実行
puts full_path + res + ( "-" * 20 )
end
(ARGV は配列で、そこにコマンドライン引数・ドロップしたファイルパスが渡ってくる)
それで、ショートカットに、複数のファイルをdrag&drop すると、
コマンドプロンプトが起動して、各ファイルのハッシュ値が求められる
ただし、空白入りの実行ファイルのパスの前後を、"〜" で囲む事で、
Program Files の空白文字も処理できるが、
ドロップしたファイルパスに空白文字があると、
パスの前後を、"〜" で囲んでも、エラーになって処理できない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 【朗報】愛国烈士ほんこん、高市首相のために長文を投稿wwwwwwwwwwwww [834922174]
- ニートしかいない時間ってマジでつまんないよな
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 千速は誰とのカップリングがエロいのか
- 高市コイン、155円突破wwwwwwwwww [246620176]
- おじゃる丸をまったり待機するスレ🏡
