1 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 07:00:26 ID:f3kW5kCx.net] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう 過去スレ %13 mevius.2ch.net/test/read.cgi/tech/1542779527/ %12 mevius.2ch.net/test/read.cgi/tech/1489207631/ %11 echo.2ch.net/test/read.cgi/tech/1424858999/ %10 peace.2ch.net/test/read.cgi/tech/1374205515/ %9 toro.2ch.net/test/read.cgi/tech/1335015478/ %8 toro.2ch.net/test/read.cgi/tech/1315844420/ %7 hibari.2ch.net/test/read.cgi/tech/1298873550/ %6 hibari.2ch.net/test/read.cgi/tech/1277465356/ %5 pc12.2ch.net/test/read.cgi/tech/1242268171/ %4 pc12.2ch.net/test/read.cgi/tech/1229955189/ %3 pc11.2ch.net/test/read.cgi/tech/1217860043/ %2 pc11.2ch.net/test/read.cgi/tech/1197881068/ 【.cmd】 バッチファイルスクリプト %1 【.bat】 pc11.2ch.net/test/read.cgi/tech/1178281991/ バッチファイルプログラミング 3.bat pc11.2ch.net/test/read.cgi/tech/1148485555/ バッチファイルプログラミング 2.bat pc8.2ch.net/test/read.cgi/tech/1104911889/ バッチファイルプログラミング質問スレ pc5.2ch.net/test/read.cgi/tech/1040614686/
697 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 20:42:13.77 ID:dQfogYw2.net] ま、5chはIPは5つしか無いけど 104.18.231.150 104.18.232.150 104.18.233.150 104.18.234.150 104.18.235.150 これはどの鯖でも共通(apiだろうがegg,kizuna,meviusだろうが)で この5つのどれかをランダムで使う なお、このIPは導入時から変わってない
698 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 00:52:20.19 ID:SoYXm1dj.net] startでバッチファイルを実行すると、cmdウィンドウが残る バッチファイルの最後をexit /B でなくexitにすると残らなかった
699 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 07:45:35.96 ID:5cZqh0Cb.net] help exitに書いてあるでしょ
700 名前:デフォルトの名無しさん mailto:sage [2022/03/24(木) 13:13:33.35 ID:dCVvmFB6.net] 最近ReactOSのソース読み始めたが勉強になるな 変な挙動のところは親切に#ifndef MSCMD_XXX_QUIRKSって書いてあってわろ MS-DOS2.0のソースはMS公式が公開してるけどアセンブリは難解すぎて諦めた
701 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 06:55:33.59 ID:NhkQRxfw.net] batにVBS仕込めるけど、JSは仕込める? 他に仕込めるものある?
702 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 12:54:10.76 ID:vpv2MT5y.net] ググれよ WSH(JScript)なら可、JavaScriptは無理だと思う PowerShellも可
703 名前:デフォルトの名無しさん [2022/03/29(火) 16:59:49.39 ID:zndnyGpb.net] Batになんか仕込むんならPowershellがいちばん簡単 VBSも上手いことやれば仕込めるし
704 名前:デフォルトの名無しさん mailto:sage [2022/03/29(火) 17:48:10.85 ID:Da68lL6t.net] >>631 みたいにすれば大体何でもイケるんじゃね
705 名前:デフォルトの名無しさん mailto:sage [2022/03/29(火) 18:45:33.65 ID:CGMVb58j.net] 我が家では外部ファイルを使うのは邪道とされておるのだ
706 名前:デフォルトの名無しさん mailto:sage [2022/03/29(火) 21:38:59.70 ID:6qHTZxky.net] 631みたいのはバッチ内のPowerShellでもっとスマートに書けるね 相変わらずコンソール消しても一瞬出てきて邪魔だけど 完全に消すにはvbsから呼んだりで結局2ファイルになる
707 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 02:50:31.03 ID:hpCvdrMf.net] バッチ自体を初めて作っててクリップボードのテキストを[]で囲んだ名前のフォルダをデスクトップに作りたいんだけど powershell get-clipboardでクリップボードから持ってくる mdとかNew-Item NewDirecrtoryでフォルダを作る までわかって|とか>で色々試して見たんだけどまあ上手くいくはずもなく そもそも出来る事なのかもわからないから質問しに来ました!たっけてー
708 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 08:04:11.49 ID:VNoVBeip.net] for /f "delims=" %%a in ('powershell clipboard') do md [%a]
709 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 08:07:00.01 ID:VNoVBeip.net] for /f "delims=" %%a in ('powershell clipboard') do md [%%~a]
710 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 09:37:15.22 ID:hpCvdrMf.net] >>700 ありがとう! for /f "delims=" %%a in ('powershell clipboard') do md C:\Users\----\Desktop\[%%~a] でいけました。
711 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 15:33:41.09 ID:MONKPJtx.net] >>698 ちなみにPowerShellだけなら powershell -c "Get-ClipBoard | ?{$_} | foreach {$dirName='[{0}]' -f $_; $dirPath=[IO.Path]::Combine([Environment]::GetFolderPath('Desktop'), $dirName); $null=[IO.Directory]::CreateDirectory($dirPath);}"
712 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 15:38:56.15 ID:XWBs+Kvf.net] >>701 ab cd a&b とかでフォルダが作成できるかテスト
713 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 17:32:35.14 ID:5jbreqOF.net] スペースのある文字列の扱いがわからんな 複数作ることを意図または許容するのか否かでちょっと違ってくる
714 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 22:48:33.20 ID:7tiScrqu.net] cmdのmkdirで作るか>>702 みたいに.NETのAPIで作るかWin2APIで作るかでも違ってくる
715 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 23:24:55.78 ID:hpCvdrMf.net] 色々方法があるけど何かしらcmdのみでは出来ないって事だけはわかった 面白いから少し勉強しようかなあ
716 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 00:56:37 ID:FFCnePh6.net] batにドラッグするだけで複数zipを同じ階層に解凍してくれるbatが作りたいです。 圧縮の場合は @echo off path C:\Program Files\7-Zip;%path% for %%i in (%*) do cd /d "%%~i" && 7z a "%%~i.zip" * で出来るのですが、解凍の場合がわかりません。わかる方いれば教えていただきたいです。宜しくお願い致します。
717 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 02:56:14.25 ID:wBUYMDtu.net] :start if "%~1"=="" goto :EOF 7z.exe x "%~1" -o"%~dpn1" -y shift goto :start
718 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 16:24:25 ID:NCtDoq3M.net] 俺の勘違いだったらすまん ドラッグで引数を渡す系だとバッチは括弧付きのファイル名が入った時点で破綻するような気がする 変なしがらみのないvbsやjs辺りで書いた方がいいかも
719 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 18:16:44.99 ID:qAvWbsmN.net] 括弧の他にも色々とダメ文字が頭に浮かぶな
720 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 20:34:57.53 ID:YeXmNplS.net] 複数選択のコンテキストメニューから展開した方がいいのでは
721 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:04:21.77 ID:neP5mDTX.net] >>708 を試したが駄目でした batにドラッグしても何も起こりません。 >>711 Claunchにbat登録だと、ファイルをモニタの縁にドラッグするだけで解凍できてとても便利なんです ファイル選んで右クリック、多いコンテキストメニューから目的を探してクリック…というのよりbatドラッグがしたくて…。
722 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:49:13 ID:6g+y36jy.net] echo on で何が起きているか調べろ ちなみに何をドラッグしているのか?
723 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:59:36.90 ID:EPzG8fyD.net] >>707 一年前に7-Zipスレで質問した人だろ ゴミ箱への移動がどうとか言ってた人 まさかドラッグしてるのはフォルダじゃないだろな
724 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 22:29:24.28 ID:4ntMkwZZ.net] どこのスレのことかと思いましたが、 7-Zip総合スレ Part 10 https://egg.5ch.net/test/read.cgi/software/1520243361/454- のことでしょうかね。 たしかに、>>707 は、この人かも。
725 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 23:09:37.54 ID:7iiWUl24.net] ファイル名に半角スペースがあるとエラーになるよね
726 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 23:40:21 ID:neP5mDTX.net] フォルダを圧縮したいのでフォルダドラッグしてます それはbatファイルでは不可能なんですかね
727 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 23:56:17.81 ID:cTakk7Wr.net] これ以上触ってはいけないような気がする
728 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 05:57:00 ID:ZvCxX7eE.net] >>712 もしかしてpathが足りないのじゃないか? >>708 のバッチの上に path C:\Program Files\7-Zip;%path% を加えてやってみろ
729 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 10:15:06.24 ID:Xjbe7mxo.net] 昔自作したやつがそう言えばどっかにあったな 色々試したけどzip名に全角スペースが含まれてる場合だけはどうにも出来なくて別のリネームバッチで半角スペースに置き換えてたわ
730 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 14:56:19 ID:D1hG0R6r.net] list1.txt 田中 山田 list2.txt 一郎 次郎 三郎 に対して xj.bat @echo off setlocal enabledelayedexpansion call :crossjoin "" %* exit /b :crossjoin for /F "tokens=*" %%l in (%~2) do ( if [%~3] == [] ( set x=%~1%%l echo !x:__=,! ) else ( set y= %* set y=!y: %1=! set y=!y: %2=! call :crossjoin "%~1%%l__" !y! ) ) を動かすと xj.bat list1.txt list2.txt (続く)
731 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 14:56:54 ID:D1hG0R6r.net] 田中,一郎 田中,次郎 田中,三郎 山田,一郎 山田,次郎 山田,三郎 を得ます このバッチファイルを list3.txt 姓 田中 山田 list4.txt 名前 一郎 次郎 三郎 と、見出しが入ったファイルに対応するよう 改造していただけませんか
732 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 15:04:34.68 ID:akel0sHj.net] for /i分にskip=1指定入れてみるとか
733 名前:721 mailto:sage [2022/04/16(土) 15:25:35.02 ID:D1hG0R6r.net] ありがとうございます 今アンドロイドなので、PC使えるときに 試して報告します ちなみに、こういう総当りって、awkやPerl でも作れるものでしょうか?
734 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 15:43:07.54 ID:pX/6gg3y.net] %%lとか気持ち悪いな こういうこと? for /f "skip=1 delims=" %%a in (list3.txt) do for /f "skip=1 delims=" %%b in (list4.txt) do echo %%a,%%b pause なんでcallしたり置換したり面倒臭い事してるのか分からん
735 名前:721 mailto:sage [2022/04/16(土) 15:58:27.63 ID:D1hG0R6r.net] ありがとうございます 引用先の元ネタは、list1.txtなどの 対象ファイルがいくつでもいけます そのためかと
736 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 17:13:22.10 ID:nVJ4wCm0.net] やりたい事に対して一見して処理が意味不明 コードレビューすれば必ず突っ込みが入るパターン
737 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 17:39:10.95 ID:akel0sHj.net] shiftとか知らんのかな
738 名前:721 mailto:sage [2022/04/17(日) 14:55:17.75 ID:wrqgojCl.net] "tokens=*" を "skip=1 tokens=*" に変えたら 見出しを飛ばしてデータを作ってくれました だけど出力ファイルが大きいとかなり 時間がかかりますね 元ネタのところに行ってVBS版の作成を 依頼してみます ありがとうございました
739 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 15:10:00.22 ID:jfoLRRUl.net] ニコイチする度にcallしてたらそりゃ遅いわ 再帰でのcallやめるだけで結構速くなるよ
740 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 16:31:06.01 ID:A4GG7JI6.net] ハッチ処理はあまりやりたくないから、 もっとかっこいい言語でかいて、バッチに変換する(コンパイル)できるといい バッチ見えなく化計画
741 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 17:32:55.50 ID:iLyScgaF.net] >>708 さんのを使ってみました ファイル名にスペースが入っていると展開されないのを回避することできますか :start if "%~1"=="" goto :EOF "C:\Program Files\7-Zip\7zG.exe" x "%1" shift goto :start
742 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 17:39:26.89 ID:b4thkYbt.net] 上で"%~1"使ってるのに下では"%1"にしてる
743 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 17:41:48.86 ID:jfoLRRUl.net] echoやpause使ってコマンド文がどうなってるのか確認したら?
744 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 17:50:28.17 ID:iLyScgaF.net] >>733 できました ありがとうございます
745 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 18:36:17.23 ID:i7g3Seu6.net] いつまでこんなレガシー機能を使い続けるの
746 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 11:21:00.70 ID:PhhBhq60.net] >>736 powerShellがダブククリックで使えないし
747 名前:デフォルトの名無しさん [2022/04/18(月) 11:27:46.45 ID:t3NwdXGg.net] シンプルだからこそC++でジェネレートした.batを目視確認してから実行とかしやすいわけで
748 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 13:50:09 ID:OF8RRP9C.net] >>730 どう書けばいいですか?
749 名前:デフォルトの名無しさん mailto:sage [2022/04/18(月) 14:16:43.44 ID:74jROqLf.net] すでにあるコマンドを使うというのは楽でいい もう少し細かいことをしたいと思うと苦労するけど
750 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 03:57:14.74 ID:RFdms0p+.net] PAUSEコマンド関連で質問です バッチファイル中にPAUSEコマンドを入れるとそこでキー入力を待ちますが、 その延長で ・エクスプローラでダブルクリックされて起動された場合はPAUSEで止める ・コマンドプロンプトから起動された場合は止めない ということをしたいです PAUSEコマンド自体には何もオプション等は無いようなのですが、何か方法はありますか 環境変数等をみて動作を切り替えることができないか調べてみましたが、 どちらの方法で起動されても同一なようで、悩んでおります
751 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 05:42:50.53 ID:q7JwT6An.net] >>741 >>446
752 名前:デフォルトの名無しさん [2022/04/20(水) 07:19:49 ID:Cwlkz3kl.net] コマンドプロンプトを起動するときのショートカットに/k:autoexec.batを入れて autoexec.batの中でset not_double_click=true そしてダブルクリックで起動するバッチの中で if not "%not_double_click%"=="true" pause とか、どうかな
753 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 09:15:24.62 ID:RFdms0p+.net] >>742-743 回答どうもです なるほど、ショートカットを作り、そこに判定の仕掛けを入れる、という方式ですね ツールを配布するときは、ショートカットの設定やコマンドプロンプトの設定を するためのインストーラが必要になりそうですね… バッチファイル単体でどうにか…と思いましたが、検討してみます
754 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 09:26:15.67 ID:q7JwT6An.net] >>744 いやいや、そんな面倒なことしなくても >>446 からの流れで %cmdcmdline% 見て判定する方法書かれてるでしょ ID:lVKoKJNl
755 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 14:21:13.38 ID:asEavXVa.net] 昔の友は 今も友 俺とお前と(デンデン)大五郎
756 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 16:29:36.51 ID:7MR/4l0o.net] ちゃん!
757 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 09:15:29.28 ID:vcjjnxKB.net] >>739 setlocal enabledelayedexpansion set n=0 for %%a in (%*) do set /a n+=1 if %n% GTR 64 >&2 echo ERROR: Args is Max limit 64 exceeded.&pause&exit /b 1 set A=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$+-/:@[]_{} set i=0 for %%a in (%*) do for %%b in (!i!) do for /f %%c in ("!A:~%%b,1!") do ( set "CMD_FOR=!CMD_FOR!for /f "usebackq delims=" %%%%c in (%%a) do " set CMD_OUT=!CMD_OUT!,%%%%c set /a i+=1 ) %CMD_FOR%echo %CMD_OUT:~1% pause&exit /b 0 引数最大64個になってるけどfor変数のリストset Aを追加すれば増やせる 実際にどこまでforを多段に出来るかは知らない コマンドの文字数制限とかあったような気がする
758 名前:721 mailto:sage [2022/04/24(日) 11:08:56.51 ID:IqM9oVR7.net] >>748 頭に@echo offをつけやってみました 10万行ぐらいの出力ファイルを ローカルHDDに作ると 721では30分、 748では5分以内 (いつ終わったか分からないため) となりました ファイルのお尻になんか1行 ついてるのはご愛敬
759 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 19:27:47.47 ID:lnSwl1A7.net] そこまで変わるのか
760 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 23:16:01.47 ID:YqrbVxmA.net] .>>721 もよくわからないが>>748 もよくわからなかった こういうのよくないと思うの
761 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 23:53:10.74 ID:/3xv87ig.net] この程度で分からんとか流石にそれはおまえの頭が悪すぎだろう
762 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:47:31.88 ID:3ou64YUW.net] >>748 の解説オナシャス!
763 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 00:02:39 ID:/dRsx73H.net] >>753 引数の数だけ >>725 みたいなコマンドを生成して実行してるだけ set "CMD_FOR=!CMD_FOR!for /f "usebackq delims=" %%%%c in (%%a) do " set CMD_OUT=!CMD_OUT!,%%%%c %CMD_FOR%echo %CMD_OUT:~1% で察せ
764 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 00:45:33.71 ID:EhTMueYx.net] いや特にその2行が意味不明で察せないんだわ
765 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 01:04:14 ID:/dRsx73H.net] 1、2行入れたList.txt用意してecho onで実行して追ってみればどこがどうなってるのかくらい池沼でなければ分かるでしょ
766 名前:デフォルトの名無しさん [2022/04/26(火) 2
] [ここ壊れてます]
767 名前:3:13:58.40 ID:AEcCnDU9.net mailto: フォルダの中にファイルが10個以上あったらタイムスタンプが一番古いファイルを削除する処理をバッチファイルでどう書くかどなたか教えろください。。 [] [ここ壊れてます]
768 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 23:29:20.25 ID:OAZlYJMq.net] >>757 ジャバスクリプト使え
769 名前:デフォルトの名無しさん mailto:sage [2022/04/27(水) 01:07:40.77 ID:c7tqZe1K.net] dirでソートしたのをforでskipしてdelすればいいんじゃね
770 名前:デフォルトの名無しさん mailto:sage [2022/04/27(水) 01:13:28.18 ID:4aF/byUR.net] バックアップファイルでも溜め込んでるのかな?
771 名前:デフォルトの名無しさん mailto:sage [2022/04/27(水) 01:13:59.63 ID:CxYG3qjN.net] pushd, popdは出口exitがたくさんあったり、あちこちgotoしたりすると つじつまがあわなくなることがある そういう時は%cd%でフォルダ位置を覚えておき、最後そこに戻すほうが気分的に楽
772 名前:デフォルトの名無しさん mailto:sage [2022/04/27(水) 03:00:29.08 ID:itKYtkFa.net] >>757 for /f "skip=9 delims=" %%a in ('dir /a-d /b /o-d') do del "%%a"
773 名前:デフォルトの名無しさん mailto:sage [2022/04/27(水) 18:14:04.80 ID:pviHRewB.net] >>757 Ruby で書いてみた。 DryRun なので、実際にはファイルは削除されません require 'fileutils' # 絶対パスのディレクトリ名の後ろに、* を付けること! # . で始まる、隠し directory, file を除く dir_path = "C:/Users/Owner/Documents/test/*" # そのディレクトリ内の全てのファイルパス・更新時刻を取得する。 # [ ファイルパス, 更新時刻 ]の配列の配列を戻す def collect_filepaths_and_mtime( dir_path ) Dir.glob( dir_path ) .select { |full_path| File.file?( full_path ) } # ファイルのみ .map { |full_path| [ full_path, File.
774 名前:stat( full_path ).mtime ] } # [ ファイルパス, 更新時刻 ] end temp_ary = collect_filepaths_and_mtime( dir_path ) if temp_ary.length >= 10 temp_ary.sort_by! { |ary| ary[ 1 ] } # 更新時刻の古い順でソート # p temp_ary FileUtils::DryRun.remove( temp_ary.first[ 0 ] ) # 削除 else puts "ファイル数は#{ temp_ary.length } です。処理するファイルはありません!" end [] [ここ壊れてます]
775 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:23:44 ID:X7f5QGPR.net] powershell gci -File | sort -P LastWriteTime -D | select -Skip 10 | %{ del $_.FullName -Fo}
776 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 11:02:51.79 ID:usL/g0YR.net] >>748 for /L 129個でやってみた 流石に途中で止めたけど以下で問題無く動いているようだから for の段数自体に制限はなさそう 文字数制限は過去ログで set が8190文字とか見たような cmd.exe が1度にパース出来る文字数なのか setコマンドの制限なのかは分からないけど前者ならそこが限界になるね @echo off setlocal enabledelayedexpansion set $$$=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$+-/:@[]_{}。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚'\ set iii=0 for /L %%a in (1,1,129) do for %%b in (!iii!) do for /f %%c in ("!$$$:~%%b,1!") do ( set "CMD_FOR=!CMD_FOR!for /L %%%%c in (0,1,1) do " set CMD_OUT=!CMD_OUT!%%%%c set /a iii+=1 ) copy nul out.txt >nul echo "%CMD_FOR%>>out.txt echo %CMD_OUT%" %CMD_FOR%>>out.txt echo %CMD_OUT% pause&exit /b
777 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 05:51:24.45 ID:QgRBAFzX.net] Dracura配色にしたら目に優しくオサレになった https://draculatheme.com/contribute PowerShellとかWindows Terminalとかのテーマもいろいろある https://draculatheme.com/
778 名前:デフォルトの名無しさん [2022/05/08(日) 05:37:23.76 ID:L9rI0dwl.net] お助けくださいm(vv)m タスクスケジューラにAdministrators最上位権限の6時間おき無期限タスクを設置しました エラーなども解決し、やっと定刻に指定したタスクを実行するよう調整出来たのですが、対象となるregファイルの起動≒実行ではなく「次のプログラムを使って開く」的なダイアログ表示になってしまいます OS上ではダブクリで処理していた内容なので盲点でした スケジューラでregファイルを使用しレジストリの改変を定期的に行う場合、操作の記述はどのようにすれば宜しいでしょうか? それか、当該regファイルを実行するためのバッチファイル記述を願いたいです スケジューラでバッチ実行を指定する方法はネット上にも複数ありました reg系は散々ググっても検索に出ないのが辛いですね アドバイスお願いしますm(vv)m
779 名前:デフォルトの名無しさん [2022/05/08(日) 06:42:10 ID:21iaPdPG.net] >>767 単に regedit %1 すりゃいい話じゃなくて?
780 名前:デフォルトの名無しさん [2022/05/08(日) 07:07:27.41 ID:L9rI0dwl.net] レジストリ等は長年平気で触っているくせに、コマンド的な知識・技量ともに不足しており、コピペやポン入れ以外の微調整が出来ませんでした XPか7時代に作った ---------- @echo off echo. echo ========================================== echo 「高速スタートアップを有効にする」の無効化 echo ========================================== echo. rem -----「高速スタートアップを有効にする」の無効化 ----- reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Power" /v "HiberbootEnabled" /t REG_DWORD /d "0" /f pause exit ---------- を発見し、そのままreg用バッチとして該当箇所コピー入れ替え→余裕のタスク発動→regも無事改変されました 元のソースがあるからこその応用ですが、スレをお騒がせして申し訳ありませんm(vv)m コピペ文化は自業自得ながらも辛いものがありますね
781 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:03:26 ID:gcxSlYEt.net] フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、 “テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡 リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、 業務委託契約の求職者と企業をマッチング 1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の 人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現! 『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル 副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破 中小企業で進む副業人材の採用、96%が継続採用を希望 茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金 長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給 フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の 『ものづくり・商業・サービス補助金』とは?概要や条件を解説
782 名前:デフォルトの名無しさん [2022/05/19(木) 11:35:25.20 ID:aWExf7Ea.net] C:\Freesoftというフォルダにtest.rarというファイルが置いてあって、 それをwinrarの64bit版で Z:のルートにフォルダを作らずそのまま解凍させるというようなbatファイルが欲しいのですが 誰か記述例を教えてください。 当方batファイルに関しては無知です
783 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 12:12:20.87 ID:aAlRquen.net] >>771 winrarの64bit版はどこにあるの? そのパス名がわからないと記述例が書けない
784 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 14:15:05.74 ID:Rn3o2leA.net] Ruby スクリプト内で、7-zip を呼び出す場合、 dest_dir に、a フォルダが作られて、その中に再帰的に階層が作られる。 ここで、aフォルダが作られず直接、tmp フォルダ以下へ展開されるオプションは、7-zipでは探せなかった zip7_exe = "C:/Program Files/7-Zip/7z.exe" archive_path = "C:/Users/Owner/Documents/test/a.zip" dest_dir = "C:/Users/Owner/Documents/tmp" # Program Files には半角空白があるので、"〜" で囲む。 # x で解凍する。-o で解凍先のフォルダを指定する puts %x("#{ zip7_exe }" x -o#{ dest_dir } #{ archive_path }) # 解凍 つまり、コマンドプロンプトでは、 "C:/Program Files/7-Zip/7z.exe" x -oC:/Users/Owner/Documents/tmp C:/Users/Owner/Documents/test/a.zip ここでの注意点は、Program Files には半角空白があるので、"〜" で囲む事と、 -oC:/ の、-oとC:/の間に、空白を入れない事 ここで、C:/Program Files/7-Zip を、Windows のユーザー環境変数パスに追加すれば、 絶対パス無しで、7z コマンドを使えるので、 7z x -oC:/〜 C:/〜 と書ける もし、xではなく、e オプションを使うと、 dest_dirにアーカイブの階層をフラットにして、すべてのフォルダ・ファイルを展開する! フォルダ構成を無視して解凍する! 限定的な使い方だが、アーカイブが再帰的なフォルダ構成ではない場合には、 これで、aフォルダが作られず直接、dest_dirフォルダへ展開できる! RAR は試していないが、a.zipの代わりに、a.rarとすれば、 拡張子から自動判別して、解凍できると思う
785 名前:デフォルトの名無しさん [2022/05/20(金) 09:45:16.10 ID:lLlVMTfc.net] >>772 C:\Program Files\WinRARのフォルダの中にWinRAR.exeがありますが 別に7zipででもzipでもrarでもかまわないという感じです。 >>773 ありがとうございます。 すいませんがこちらの勘違いで置き場所を間違ってたので変更させてください。 Yドライブ(外付けハードディスク)のsoftというフォルダにabc.zip(ファイル名は仮の名前) というファイルがあるとして 「Y:\soft/abc.zip」 このabc.zipをZドライブ(RAMディスク)上にbatファイルダブルクリックで解凍したいです。 解凍の際にそのまま解凍でもフォルダを作ってそこに解凍ででもどちらでもかまわないです。 7zipはさっきインストールしました。 7zipと winrarはともに一時ファイルの作成場所をZのtempフォルダに指定してあります 「Z:\rartmp」←こんな感じ。 この場合のbatファイルはどうなりましょうか? なぜbatで解凍したいかというと、某フリーソフトなんですが更新が頻繁にあって、更新の通知に対してYESを選ぶと小さいサイズの ファイルを6000個以上書き込むみたいで、更新するのに20分ぐらいかかります。 それだったら更新の通知が来るたびにキャンセルして公式サイトから最新版のzipファイルを入手して RAMディスク上に解凍したのを起動させたほうが、短い時間ですむんじゃないかという考えです
786 名前:773 mailto:sage [2022/05/20(金) 12:29:11.62 ID:SIlSZC9T.net] 773 に書いてあるけど、 Program Files には半角空白があるので、実行ファイルの絶対パスを、"〜"で囲む "C:/Program Files/WinRAR/WinRAR.exe" 引数1 引数2 ここで、C:/Program Files/WinRAR を、Windows のユーザー環境変数パスに追加すれば、 絶対パス無しで、WinRAR コマンドを使えるので、 「WinRAR 引数1 引数2」と書ける ダブルクリックで起動したいのなら、 デスクトップにショートカットでも作れば? 例えば、773 のRuby スクリプトが、 C:/Users/Owner/Documents/Ruby/script.rb にある場合、 ショートカットのリンク先 C:\Windows\System32\cmd.exe /k "ruby C:/Users/Owner/Documents/Ruby/script.rb" これは、コマンドプロンプト・cmd.exe を起動して、 ruby コマンドで、script.rbを実行する (注意! 書き込めないので、cmd を英小文字に変換して下さい) 他には、VBScript でも、ダブルクリックで起動できたと思う。 漏れは、bat は知らないから、バッチファイルをダブルクリックで起動できるかどうかは知らない 7-zip のオプションで、一時ファイルの作成場所の指定も、見たような気もする。調べて下さい ただ、7-zipの7z.exe はコマンド用じゃなく、画面操作用だから、 必ず、解凍先フォルダは空の状態で始めて下さい! そこにファイルがあると、同じ名前の場合に、上書きしますかとか聞かれて、コマンドが止まる だから本当は、7-zipのコマンド用実行ファイルを使った方がよいかも
787 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 20:38:33.57 ID:8qofalUL.net] バカの話は必ず長い (宝島社新書) 櫻井 弘
788 名前:デフォルトの名無しさん [2022/05/20(金) 20:50:08.11 ID:zxJBX/+G.net] と、バカが申しております。
789 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 23:38:55.76 ID:MePC0rUW.net] バカって言う人は自分がバカなんだよ? 幼稚園児でも知ってるのに
790 名前:デフォルトの名無しさん [2022/05/21(土) 06:37:24.42 ID:55Td3nWK.net] と、幼稚園児が申しております。
791 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 06:53:52.00 ID:/PQRaHnB.net] ブログでやれよって感じ
792 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 18:17:57.65 ID:RDTYjvSl.net] rarを解凍する機会なんてそんなないのにbatが欲しい?しかもbatファイルに関しては無知?妙だな…
793 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 07:47:47.45 ID:Lvn387tn.net] forのin部で wmic を使って文字列取得しようとするとdo以後のコマンド類がバグる for /f "tokens=2 delims==" %%a in ('wmic process where "name=\"hoge.exe\"" get CommandLine /value 2^>nul^|find "CommandLine"') do set RUNEXE=%%a と最小限に留めたらecho on でプロンプトが削れて表示は少しおかしいものの一応動作はした でも「バグってるものがたまたま動いてるだけ」の状態が心情的に嫌なので代替手段があれば教えて欲しい やりたい事は特定のexeが実行中か否か D:\app\a\hoge.exe が実行中かどうかを調べたいとして D:\app\b\hoge.exe のような別ディレクトリにある同名のexeは実行中でもOK tasklistだとhoge.exeが稼働してるかどうかは調べられるけどどのディレクトリのモノまでかは特定不能のよう
794 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 07:58:02.47 ID:Lvn387tn.net] forで取らずにリダイレクトして一旦TMPファイルに書き出せば良いんだろうけどなんか負けた気がするのでそれは最終手段
795 名前:デフォルトの名無しさん [2022/05/23(月) 09:22:19.13 ID:vgqZRn8w.net] パイプを犯人扱いしてfor内でifしちゃうのもありかな? あと細かいけど"set RUNEXE=%%~a"としないとスペースとかで死ぬ
796 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 09:32:45.04 ID:Lvn387tn.net] >>784 パスにスペースを含む場合、%%~aが利かない 頭の"だけ除かれてケツの"だけが残る罠 あとパイプ無くてもバグる
797 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 12:58:34.94 ID:Lvn387tn.net] 自己解決 > %%~aが利かない はケツにスペース入ってたから バグるのは文字コード上の問題のよう scripting.cocolog-nifty.com/blog/2009/09/wmic-6efe.html パイプだと改行コードがおかしくなるだけらしいけどその後のコマンド類がおかしくなるのは不明 URL先の説明にあるように直接ファイルへリダイレクトしてtypeで読めばバグらないようになった wmic process where "name='hoge.exe'" get CommandLine 2>nul >$tmp.txt for /f "delims=" %%a in ('type $tmp.txt^|find ":"') do for %%b in (%%a) do set "s=%%~b"