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/
2 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 07:38:40.18 ID:sYOUYcTP.net] Swiss File Knife https://www.freewarefiles.com/Swiss-File-Knife_program_39649.html stahlworks.com/dev/swiss-file-knife.html ちょっと試したけど使い勝手が良い
3 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 16:03:49.79 ID:YDp7CJXQ.net] startコマンドでコマンドを実行がエラーになった時にerrorlevelで戻り値確認すると9020になっている。 /wait付けても付けなくても同じ。 これが正しいのかよくわからん
4 名前:デフォルトの名無しさん mailto:sage [2020/08/15(土) 23:16:48.97 ID:vVgO0BR5.net]
5 名前:="../test/read.cgi/tech/1597442426/3" rel="noopener noreferrer" target="_blank" class="reply_link">>>3 普通の動作 実行したアプリが即時終了して9020を返しているだけ [] [ここ壊れてます]
6 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 07:47:08.35 ID:A8ymKSpp.net] そういう結果にはならんなー (verify offはerrorlevelを0にセット、verify xxxはerrorlevelを1にセットする) C:\>verify off C:\>start xxx ファイル xxx が見つかりません。 C:\>echo %errorlevel% 9059 C:\>verify off C:\>start /wait xxx ファイル xxx が見つかりません。 C:\>echo %errorlevel% 9059 C:\>verify off C:\>start cmd /c verify xxx C:\>echo %errorlevel% 0 C:\>verify off C:\>start /wait cmd /c verify xxx C:\>echo %errorlevel% 1 startやstart /wait自体が失敗したら9059 startが成功したら0 start /waitが成功したら、実行したコマンドの戻り値を返す
7 名前:3 mailto:sage [2020/08/16(日) 09:57:56.96 ID:+xZknRBW.net] >>5 そうそうそう。 9020と9059の違いはありますが、 起動か失敗するコマンドは独自に実行するとOSから別のエラーコード(起動失敗の直接の原因となったエラー)が返ってきますが、 それがstartコマンドから実行すると(自分の場合は)9020になって本来のエラーコードがわからないって事です。
8 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 10:40:25.72 ID:O0yhKyc9.net] start /wait cmd /k 使い方
9 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 10:54:36.31 ID:7Iew54RL.net] コマンドは何よ?
10 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 18:45:13 ID:5bX3HnFK.net] 話変わるけど、括弧で結果が変わるのはなんで? >color 00 & echo %errorlevel% 0 >(color 00) & echo %errorlevel% 1
11 名前:デフォルトの名無しさん [2020/08/16(日) 19:20:31.36 ID:Nztll5gc.net] ぬ? https://light.dotup.org/uploda/light.dotup.org668399.png
12 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 19:28:17.47 ID:5bX3HnFK.net] >>10 ありがとう おれの環境だとあらかじめ set errorlevel=1 にしてるとそうなるけど
13 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 19:29:38.18 ID:vTgpRfn/.net] 2度目のはerrorlevelを0にして試してないのでは? &でつなぐと forの中の %変数% と同じで反映されない 試してないけど遅延展開有効にして!errorlevel!とすれば多分大丈夫 ()は関係無い
14 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 19:36:49.54 ID:5bX3HnFK.net] あらかじめ set errorlevel=0 にすると 両方とも 0 になる。
15 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 19:42:36.63 ID:vTgpRfn/.net] set errolevel=値 したらsetした環境変数が優先されerrorlevel自動代入の機能は死ぬ set errolevel= で消せば元に戻る
16 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 19:51:04.53 ID:5bX3HnFK.net] あらかじめ set errorlevel= にすると >>9 のようになる
17 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 20:09:12.98 ID:vTgpRfn/.net] pushd . color 00 & echo %errorlevel% pushd . (color 00) & echo %errorlevel% てしてみ?両方0になるから 2回目の1は1回目のエラーが表示されてる %変数%の展開のタイミングは構文の評価時なのでそうなる
18 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 20:17:16.41 ID:A8ymKSpp.net] >color 00 & echo %errorlevel% これはcolor 00 & echo %errorlevel%を実行する直前のerrorlevelが表示される。 color 00の実行結果を知りたければ&でつながずに2回に分けて実行しなければならない。 >color 00 >echo %errorlevel% あるいはcmd /v:onで遅延展開を有効にしてから >color 00 & echo !errorlevel!
19 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 20:29:56.33 ID:5bX3HnFK.net] >>16 ありがとう。括弧は無関係ですね set errorlevel= だと初期化されないのか
20 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 20:39:32.90 ID:vTgpRfn/.net] この「構文評価時に展開される」というロジックを使って環境変数を配列のように使えたりする for /l %%i in (1,1,5) do set A%%i=%%i for /l %%i in (1,1,5) do echo %%A%%i%% for /l %%i in (1,1,5) do call echo %%A%%i%% pause
21 名前:デフォルトの名無しさん mailto:sage [2020/08/16(日) 21:37:34.66 ID:vTgpRfn/.net] set errorlevel=値 とsetした時とそうでない時の %errorlevel% は別物 %time% %date% も同じく ビルトイン特殊環境変数 みたいな感じ 参照出来るけど環境変数としては存在しない だから set e とか set d とかしても表示されない。環境変数ではないから set t は tmp temp が表示されるはず これらは set で同名の環境変数名を設定するとそちらが優先されビルトインの方は参照出来なくなる 環境変数に設定した場合は環境変数を消去するとビルトインの方を参照する set time=0 echo %time% set time= echo %time% echo はONです。とはならない
22 名前:デフォルトの名無しさん mailto:sage [2020/08/17(月) 07:53:31.79 ID:hOPUdkb9.net] %cd% も 他に何かあったっけ?
23 名前:デフォルトの名無しさん mailto:sage [2020/08/17(月) 08:21:28 ID:hOPUdkb9.net] cd cmdcmdline cmdextversion date errorlevel highestnumanodenumber random time
24 名前:デフォルトの名無しさん [2020/08/17(月) 11:49:09.93 ID:0uhm6UU6.net] if errorlevel 0 goto err
25 名前:デフォルトの名無しさん mailto:sage [2020/08/17(月) 12:25:18 ID:Md0hBahZ.net] 後藤は極力使わない
26 名前:デフォルトの名無しさん mailto:sage [2020/08/17(月) 18:56:48.99 ID:hmt9CL+F.net] >>18 ERRORLEVEL が初期化できない場合は >cmd /c exit 7 >set ""|findstr "=E" =ExitCode=00000007
27 名前:デフォルトの名無しさん mailto:sage [2020/08/17(月) 19:02:26.61 ID:hmt9CL+F.net] echo %=ExitCode%
28 名前:デフォルトの名無しさん mailto:sage [2020/08/17(月) 19:16:51.03 ID:hmt9CL+F.net] ダメだな exit にしか使えんな
29 名前:デフォルトの名無しさん mailto:sage [2020/08/22(土) 16:25:23.98 ID:WW0Ct525.net] for %a in (a bb あ 冬 円 止 梅 十 申) do echo [%a]| findstr /r /c:"\[[^×][^×]*\]" && echo %a ok || echo %a ng 5cは大丈夫なのに7eがダメ for %a in (a bb あ 冬 円 止 梅 十 申) do echo [%a]| findstr /r /c:"\[.\]" && echo %a ok || echo %a ng findstrの正規表現の"."て1文字では無く1byteなんだな。これにも躓いた
30 名前:デフォルトの名無しさん mailto:sage [2020/08/22(土) 20:54:30 ID:ZT5qbO53.net] 以前から findstr は全角が絡むと挙動不審になる >echo A | findstr /r /c:"[ア]" A
31 名前:デフォルトの名無しさん mailto:sage [2020/08/23(日) 00:55:18 ID:W2kjoCYK.net] echo 陰|findstr /r /c:"[ア]" 陰 echo 陰|findstr /r /c:"A" 陰 "[ア]"は"0x8341" では無く、"0x83","0x41" の文字集合扱いってことみたいだね "."の扱いもそうだし1byteでしかみてないの確定か。酷い とするとほぼリテラルでしか使えないな 日本語文章のファイルからアルファベットが含まれる行を抜き出そうとして"[A-z]"とかしても関係無い行だらけになりそうだ
32 名前:デフォルトの名無しさん mailto:sage [2020/08/23(日) 05:33:34.45 ID:YFfZnyha.net] ついでに言うと正規表現ではない検索も変だろ /R 無くても同じ。何のためのオプションだよ >echo abc | FINDSTR "[b]" abc >echo abc | FINDSTR "." abc
33 名前:デフォルトの名無しさん mailto:sage [2020/08/23(日) 09:26:20.02 ID:W2kjoCYK.net] それはバグってより設計者の好みだろう デフォを自分仕様にしたかったのだろうね findstr "SPはOR検索 + 正規表現" 文字列リテラルで検索したい時は findstr /L "SPはOR検索 + 文字列リテラル" findstr /c:"SPリテラル + 文字列リテラル" SPリテラルで正規表現 findstr /r /c:"SPリテラル + 正規表現" まあ/r の有り無しで正規表現のスイッチに統一して /Lや/Cを廃止にしてspによるor検索をスイッチにした方が分かりやすかったろう というか findstr /c:"abc" /c:"xyz" と複数置けるから""だけのor検索無くても困らないんだが設計者には必要だったのだろうね "|"が正規表現のORとして無いことも関係あるのかも知れない /b "# : ; @" とか /r /c:"^#" /c:"^:" /c:"^;" /c:"^@" と書くより楽だし
34 名前:デフォルトの名無しさん mailto:sage [2020/08/23(日) 18:33:53 ID:YFfZnyha.net] >>32 勉強になりました。ありがとうございます。
35 名前:デフォルトの名無しさん mailto:sage [2020/08/23(日) 19:13:37 ID:YFfZnyha.net] FINDSTR で間違いやすい例を書いてみた。 >echo a"b"c | FINDSTR /L a"b"c || echo NG NG >echo a"b"c | FINDSTR /L a\"b\"c || echo NG a"b"c >echo "a\\b" | FINDSTR /L "a\\b" || echo NG NG >echo "a\\b" | FINDSTR /L "a\\\\b" || echo NG "a\\b"
36 名前:デフォルトの名無しさん mailto:sage [2020/08/24(月) 22:11:18 ID:lQsXqBw5.net] >>34 こりゃ、呪文だなwww
37 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 00:00:29.45 ID:u2jzRMP8.net] 最近は ripgrep ばかりで findstr 使わなくなったなぁ
38 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 07:21:39.36 ID:DIRbM727.net] 難問 echo a^^b | find "a^b"
39 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 10:40:55.06 ID:QTO1Ka7Y.net] >>37 解けた echo a^^^^b | find "a^b" a^b 何故こうなるかは知らん
40 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 11:04:16.63 ID:tde3aaGe.net] コマンドライン解析で一度、パイプで二度
41 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 15:32:57 ID:e1SePToE.net] 難問のような書き方ができないのが初心者 難問のような書き方を回避するのが上級者、時間の無駄なので
42 名前:デフォルトの名無しさん mailto:sage [2020/08/25(火) 17:31:06.89 ID:DIRbM727.net] echo a^^b | find "ab" ab
43 名前:デフォルトの名無しさん mailto:sage [2020/08/26(水) 06:29:54.99 ID:uY0vxId0.net] https://stackoverrun.com/ja/q/1204675 昨日これにハマってた こんなエスケープの仕方、気付けるかってのw 俺はリダイレクトじゃなくてfor do の()内でfindstrの後ろに)や&&がある時にダメだった 長いと見辛くなるけど()を付けずに1行で書くとエスケープ無くとも問題ない findstrもsetと同じく基本的には改行で終わるようにするかサブルーチン呼んでネスト外にした方がいいっぽい >>40 いやほんとそれな なるべくネストさせない書き方だったりロジックが大事
44 名前:デフォルトの名無しさん mailto:sage [2020/08/26(水) 08:34:28 ID:PfiO/aOo.net] トラブルが嫌なら全部一行ずつ書けばいい あとはcallとかgotoで制御して そもそも初級者は何を回避したらいいか判別できない ハマった経験が無いからね
45 名前:デフォルトの名無しさん mailto:sage [2020/08/26(水) 08:42:47.76 ID:Aw0pMxIV.net] stackoverrunなんてパクリクソサイト使うんじゃねー stackoverflow見ろ https://stackoverflow.com/questions/4982802/escaping-a-quote-in-findstr-search-string
46 名前:デフォルトの名無しさん [2020/08/26(水) 09:18:45 ID:3xqKZ5M9.net] >>44 ここはあめぞうのパクリサイトですお
47 名前:デフォルトの名無しさん mailto:sage [2020/09/03(木) 14:07:53 ID:k8mfa657.net] 指定フォルダ配下の全フォルダに対してプログラムを実行したいんですが、 batってフォルダかどうかってどう判別すればいいんですか? Pythonのisdirみたいなことって出来ますか?
48 名前:デフォルトの名無しさん mailto:sage [2020/09/03(木) 14:42:52 ID:+v/Eop6e.net] >>46 フォルダに必ずあるファイルの存在チェック if exist "フォルダ\." echo フォルダです 又はdirコマンドの助けを借りるとか、他にもやり方はありそう >nul 2>&1 (dir /ad "フォルダ"|find "<DIR>")&&echo フォルダです
49 名前:デフォルトの名無しさん mailto:sage [2020/09/03(木) 14:52:00 ID:+v/Eop6e.net] あれ、.や..を指定するとダメみたい\のみで 間違って覚えてたのかな
50 名前:デフォルトの名無しさん mailto:sage [2020/09/03(木) 15:38:32.84 ID:14mNqQ/J.net] > 指定フォルダ配下の全フォルダに対してプログラムを実行 > isdirみたいな for /r "c:\test" %%G in (.) do ( echo "%%G" "%%~aG" call :sub "%%~fG" ) pause &exit /b :sub set "a=%~a1" if "%a:~0,1%"=="d" echo folder exit /b
51 名前:デフォルトの名無しさん mailto:sage [2020/09/03(木) 20:06:56.41 ID:cSGnh9i3.net] if exist Folder\NUL NULとかのデバイスが存在すればフォルダ
52 名前:46 mailto:sage [2020/09/03(木) 21:43:59.26 ID:s/SMQArb.net] ありがとうございます いろいろなやり方があるんですね
53 名前:デフォルトの名無しさん mailto:sage [2020/09/03(木) 23:29:38 ID:YSxN3SpI.net] 誰か挙げてくると思ってたけど嫌われてんの?w > forfiles forfiles には @isdir というまんまディレクトリ判定のがある 他にもまぁ便利っちゃ便利なんだけど、遅いのであんまり使わない forfiles
54 名前:デフォルトの名無しさん [2020/09/04(金) 00:30:01.26 ID:kQRqRY30.net] xpで使えないと駄目だろ
55 名前:デフォルトの名無しさん mailto:sage [2020/09/04(金) 23:58:55 ID:1jfeDIRi.net] XP... 今時…
56 名前:デフォルトの名無しさん mailto:sage [2020/09/05(土) 07:15:55.93 ID:6fK9k7zC.net] cd folder && program でいいやろ…
57 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 03:56:31.22 ID:udh9kkuM.net] @echo off &setlocal enabledelayedexpansion set MD5=c472a022eb426cf1733a36e08b31c9f9 set T=0123456789ABCDEFGHIJKLMNOPQRSTUV for /L %%i in (0,1,25) do ( set /a L=5*%%i/8, L*=2, H=L+2, R=5*%%i%%8 call set /a "N=0x%%MD5:~!H!,2%%%%MD5:~!L!,2%%>>R&31 echo !N! call set HASH=!HASH!%%T:~!N!,1%% ) echo "%HASH%" if "%HASH%"=="4MS0AHCT22R2VP97M1ONOO4PP7" ( echo OK) else ( echo Fail) pause ちょっと誰か助けてくれ。気になって眠れずこんな時間になってしまった エスケープの仕方を教えて欲しい 上ので動いてるんだけどN左の引用符を外して call set /a N=0x%%MD5:~!H!,2%%%%MD5:~!L!,2%%^>^>R^&31 call set /a N=0x%%MD5:~!H!,2%%%%MD5:~!L!,2%%^^^>^^^>R^^^&31 call set /a N=0x%%MD5:~!H!,2%%%%MD5:~!L!,2%%^^^^^>^^^^^>R^^^^^&31 とか call set /a N^=0x%%MD5^:^~!H!^,2%%%%MD5^:^~!L!^,2%%^>^>R^&31 call set /a N^^^=0x%%MD5^^^:^^^~!H!^^^,2%%%%MD5^^^:^^^~!L!^^^,2%%^^^>^^^>R^^^&31 とか%重ねたりとか何時間も色々試してみたけどNが空になる 何にどれだけエスケープが必要なのかのロジックが知りたい forとcallで2段なんだと思うんだけど。。 分かる人居たらお願いします
58 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 06:03:46.49 ID:v191ihhK.net] こういうのは嫌なのか? call set /a N=0x%%MD5:~!H!,2%%%%MD5:~!L!,2%%">>"R"&"31
59 名前:デフォルトの名無しさん mailto:sage [2020/09/10(木) 08:08:01.59 ID:udh9kkuM.net] >>57 ありがとう それでも動いたし以下でも行けた call set /a N=0x%%MD5:~!H!,2%%%%MD5:~!L!,2%%">>R&31 という事は右シフトとアンドだけが問題で他は関係無いっぽい ^だけじゃ出来ないのかな
60 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 15:25:35.94 ID:W8TB3CjN.net] バッチファイルでメッセージボックスを表示してレジストリのバックアップをするとエラーになります なんででしょうか ご教示よろしくお願いいたします Win7 HP SP1 x64 コード @echo off set title=VBScript set text=%~nx0ファイルを実行しますか? set type=52 set tmp=%TEMP%\temp.vbs echo WScript.Quit(MsgBox("%text%",%type%,"%title%")) > %tmp% & cscript //nologo %tmp% if errorlevel 7 goto end reg export "HKCR\*" "%USERPROFILE%\Desktop\hoge.reg" /y echo. pause goto end :end del %tmp% exit エラーメッセージ エラー: ファイルに書き込めません。ディスクまたはファイル システムにエラーがある 可能性があります。
61 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 15:53:37.94 ID:UUr/oA+t.net] たぶんディスクまたはファイルシステムにエラーがある
62 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 16:22:35.50 ID:rbJ0gfd+.net] 実行してないけど多分&で繋いだところで、まだ%tmp%ファイルが作られてないんじゃないかな ついでに結果判定の行も実行前に通過しちゃいそう
63 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 17:33:48.42 ID:rbJ0gfd+.net] 実行してみた 原因は%tmp%を変更したからだね(おそらくregコマンドがtmpを使ってる) %tmp%→%tmpfile%とでもしとけばいい
64 名前:デフォルトの名無しさん mailto:sage [2020/09/13(日) 17:52:08.11 ID:W8TB3CjN.net] >>62 ID:rbJ0gfd+ さんへ 長年の疑問が晴れました。ありがとうございました。m(_ _)m
65 名前:デフォルトの名無しさん mailto:sage [2020/09/14(月) 18:50:01.56 ID:QRPjjbWO.net] なんじゃそれ
66 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 08:02:48.52 ID:zq4P2IYm.net] 昔はバカコーダーの代表格だったif else if...でひたすら羅列してるやつ、くっそ遅かったのに 今win10だとforで回すより速いんだがw 試して思わず吹いたw XP機なんてもう無いから比較出来んけど 専門用語よく分からんがプリプロセッサだかインタープリタだかがセミコンパイル?最適化?してくれるようになったん? カビ臭いセオリーに囚われてちゃイカンようだ
67 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 10:14:02.00 ID:QjU8NMVB.net] for do 後の文中に call を入れると遅くなるのを何とかして欲しい。 処理時間が倍増する。下手すると何十倍もかかる
68 名前:デフォルトの名無しさん [2020/09/15(火) 10:25:56.06 ID:X+gTbBjK.net] フロッピーディスクでディスクキャッシュ無効にしてbat走らせると 1行ごとにbatファイルを再読み込みしているのが実感できて楽しいよ
69 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 14:56:26.93 ID:zq4P2IYm.net] >>66 call set とかで多段展開よく使うんだけど callの代わりにfor文にしてfor変数と遅延展開にして callやめたら確かに速くなったわ 見た目上は call set の方がシンプルで速そうなんだがなー 速い書き方模索してたので助かった. ありがとう
70 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 15:12:45.99 ID:zo2IeaGi.net] callの時点で子タスク生成して構文解釈まで行われるじゃん 速いはず無い
71 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 15:29:08.58 ID:QjU8NMVB.net] おまけにバッチ優先だから気味が悪い @echo off echo set a=NG > set.bat call set a=OK echo %a% pause
72 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 16:07:46.64 ID:zq4P2IYm.net] 偶にコマンド名と同じファイル名付けてトラブるバカが居るけどそれは流石にイチャモンが過ぎるだろw
73 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 16:17:43.50 ID:QjU8NMVB.net] 普通は内部コマンド優先
74 名前:デフォルトの名無しさん [2020/09/15(火) 18:34:43.10 ID:X+gTbBjK.net] 毎回set.batがあるかpath探してるのか?
75 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 18:52:07.91 ID:QjU8NMVB.net] そうだと思う。たぶん exe とかも捜してる。 余計な処理で時間のロス
76 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 19:48:46.31 ID:/ea/Q9+g.net] callって元々バッチファイルを呼ぶためのコマンドだしな 環境変数を遅延展開するために使えるなんて公式ヘルプには載ってない
77 名前:デフォルトの名無しさん mailto:sage [2020/09/15(火) 23:46:39.63 ID:otyKrGil.net] >>62 これ危ないね windowsとユーザの環境変数は分けないとウィルスに悪用されそう
78 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 22:08:23.94 ID:uEsKVG5e.net] windows板でいい答えが出なかったんでこっちに来ました。 windows10でログオンしなければ走らないプログラム(TV録画予約ソフト)があるので、Windows の自動ログオンを有効にし、 Autoexec.batに rundll32 user32.dll, LockWorkStation と記述して直ちにロックすることとしています。 しかしながら、これは不意の停電などで再起動したときの為であって、 自分自身がPCの前にいる場合は、ロック解除をしなければならないのが面倒です。 そこで、バッチファイルで 15秒待つ その間に何もキーが押されなかったら、 rundll32 user32.dll, LockWorkStation を実行 何かキーが押されたら、バッチファイルを終了 としたいのですが、どうしたらいいでしょう N88BASIC(86)だとこんなイメージ (10行の "to 1000"は適当に調節) 10 for i=1 to 1000 20 a$=inkey$ 30 if a$<>"" then goto 70 40 next i 50 rundll32 user32.dll, LockWorkStation 60 end 70 i=1000:next i 80 end ちなみに今は、autoexec.bat に TIMEOUT /T 15 /NOBREAK rundll32 user32.dll, LockWorkStation として、すぐに作業したい場合は15秒の間にcmdの右上のxをクリックしてコマンドプロンプトを閉じています
79 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 22:14:12.38 ID:uEsKVG5e.net] こちらの質問はもしかしたらスレ違いかもしれませんが。 あるフォルダ内のファイル一覧をテキストファイルに落としたいと思っています。 一太郎Ver4.3付属のMS-DOS2.11以来、DOSに慣れ親しんでいる私は、 CMD (又は見栄を張ってpowershell)で、 D:\hoge\hoge>dir > list.txt なんてやってしまうのですが、 Windows10ネイティブのナウなヤングはWindows上で、どのようにやるのでしょうか コマンドプロンプトなんて使ったことのない、普通のWindowsユーザーさんに教える必要があります
80 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 03:30:06.61 ID:1TUbP9BW.net] dir /b > list.txt
81 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 05:19:51.44 ID:RfEWMQRr.net] >>77 choice /? タイムアウトも既定の状態も設定出来る
82 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 06:32:50.16 ID:aPDv4PNE.net] キーを限定してもいいならchoice
83 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 06:41:28.16 ID:aPDv4PNE.net] >>78 エクスプローラーで選択してホーム、パスのコピー、メモ帳にコピペ保存 Windows板でレスがあったろ
84 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 07:30:51.34 ID:RfEWMQRr.net] choiceはotherが設定出来たら言うことなしだったのになぁ forもcontinueとbreakさえあれば。。 あと一歩をわざと使いづらくしてるのかと邪推してしまうわ
85 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 20:29:41.51 ID:QtwFpjW/.net] 恐れ入ります。初心者です。 約400個の.m4aファイルを.mp3形式に変換しようとしています。 以下のようなバッチファイル作成において、出力ファイル名の記述が大変なのですが、 ffmpeg -i aa001.m4a -ab 48k aa001.mp3 ffmpeg -i bb004.m4a -ab 48k bb004.mp3 ffmpeg -i c030.m4a -ab 48k c030.mp3 入力ファイル名の文字列だけを変数のようにして、出力ファイル名として利用できないでしょうか? 以下のようなイメージです。 ffmpeg -i aa001.m4a -ab 48k 変数.mp3 ffmpeg -i bb004.m4a -ab 48k 変数.mp3 ffmpeg -i c030.m4a -ab 48k 変数.mp3 説明は面倒かと思いますので、参照すべきURL、 もしくは検索ワードだけでも教えて頂けると助かります。
86 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 20:38:05.68 ID:bYdUCAyz.net] m4a ファイルが D:\M4A\ に入っているとして for %%L in (D:\M4A\*.m4a) do ffmpeg -i %%L -ab 48k %%~nL.mp3
87 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 20:57:17.46 ID:QtwFpjW/.net] >>85 様 早速のアドバイス、ありがとうございました。 見事に変換できました。 私の発想の方向性が悪く、for文を使えば良かったのかと… ありがとうございました。
88 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:47:40.18 ID:wKgZGKzj.net] 入力された文字列を使ってコマンドを走らせようとしてるんだけど変数に値は入るんだけどコマンドの方には空っぽで出力されるんだがなにか処理っているの? %で囲むだけでいいよね?
89 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:53:42.03 ID:HRjNW00f.net] >>87 多分、遅延環境変数の問題 setlocal enabledelayedexpansion書かないとだめ
90 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:57:51.23 ID:wKgZGKzj.net] >>88 それはなんですか?
91 名前:デフォルトの名無しさん [2020/10/04(日) 00:03:10.85 ID:1nqCsM3n.net] >>89 お前の質問が情報不足だから可能性のある回答を当てずっぽうで答えたのだろうよ なお何かというと setlocal /? を読め
92 名前:デフォルトの名無しさん mailto:sage [2020/10/04(日) 00:16:53.72 ID:VPBkvUyg.net] 上から目線怖い
93 名前:デフォルトの名無しさん mailto:sage [2020/10/07(水) 22:42:28.13 ID:8t5FIA98.net] set /p moji=入力するのじゃ echo 出力するでおじゃる %moji% うん、何の処理もいらないな
94 名前:デフォルトの名無しさん mailto:sage [2020/10/08(木) 13:42:17.79 ID:BulPjeqX.net] 遅延展開に関して setlocal /? にはロクな説明無いよ 詳しい説明が書かれているのは set /? の方 まあ87みたいなアホはスルーしとけ
95 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 12:07:08.64 ID:xYDxCkF1.net] 入力処理を2回する時ってなにか特殊な処理とかいるの? YESNO→文字列入力で 後者の処理で変数に文字列が入らない
96 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 12:17:29.66 ID:ZREy0Q0x.net] >>94 そんなんじゃ分からんよ 具体的に書け おそらくすぐ上のレスと同じ気はするけど
97 名前:デフォルトの名無しさん [2020/10/09(金) 12:41:22.12 ID:xYDxCkF1.net] >>95 @echo off @setlocal cd /d %~dp0 :START rem 初期化 set NUM_INPUT= set ID_INPUT= set URL_INPUT= set /P NUM_INPUT="URLはどちらですか?(1:DL/2:ok.ru/9:アップデート):" IF %NUM_INPUT% equ 1 ( set /P ID_INPUT="IDを入力してください: " youtube-dl https://lb.loadloadingfreevideo.top/hls/%ID_INPUT%/%ID_INPUT%.m3u8 --user-agent "Mozilla/5.0 (Intel Mac OS X)" ) ELSE IF %NUM_INPUT% equ 2 ( set /P URL_INPUT="URLを入力してください: " echo 入力した文字列は %URL_INPUT% です。 youtube-dl %URL_INPUT% ) ELSE IF %NUM_INPUT% equ 9 ( youtube-dl -U ) ELSE ( goto :START ) pause VisualBatで確認したところ2回目の入力値の変数には値が入ってくるんだが出力されたときには空欄で出力される…
98 名前:デフォルトの名無しさん [2020/10/09(金) 13:22:34.61 ID:MFDBon0y.net] すみません、自己解決しました
99 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 13:34:07.34 ID:xYDxCkF1.net] してないわw
100 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 14:11:49.12 ID:ZREy0Q0x.net] 行の解釈は、行を読み込んだ時点で解釈され、変数は置換される ()で囲まれた部分は全体で一行扱い つまり括弧内で入力したって、それは括弧を抜けないと有効でなく カッコ内は既に括弧前(if文の前)の値で置換済み やっぱり上のレスと同じじゃん
101 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 14:35:46.06 ID:ZREy0Q0x.net] 解決策は 構造を変えて、入力と参照のどちらかをif文から出すか 遅延環境変数を使うか call文で内部の処理をサブルーチンとして呼び出す形にするか
102 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 14:36:34.08 ID:0eCLusxq.net] @echo off &setlocal pushd "%~0\.." :MAIN set N= set /p N= 選択 [ 1:ID, 2:URL, 9:Update ] : if "%N%"=="1" call :DL_ID if "%N%"=="2" call :DL_URL if "%N%"=="9" call :UPDATE goto :MAIN :DL_ID set ID= set /p ID= ID? : :: ここで入力値を確認するかfindstrでIDの形式として正しいかcheck youtube-dl "https://lb.loadloadingfreevideo.top/hls/%ID%/%ID%.m3u8" --user-agent "Mozilla/5.0 (Intel Mac OS X)" exit /b :DL_URL set URL= set /p URL= URL? : :: ここで入力値確認 youtube-dl "%URL%" exit /b :UPDATE youtube-dl -U
103 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 14:46:41.82 ID:xYDxCkF1.net] >>100 検索ワードが悪かったみたいで調べてみたら遅延環境変数で忘備録書いてる人いたから読み解いてくる >>101 ありがとう 試しに使ってみたら大成功だったよ ルーチン呼ぶほうが簡単みたいね 感謝しきれないわ。 自分で作りかけもできるようになるまで模索してみる みんなありがとう
104 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 19:13:39.03 ID:bdkjFn4I.net] ここの人たちはコマンドプロンプトのことを「シェル」って呼ぶ? あまり一般的じゃないですよね? シェルって言ったらBashとかあっちのイメージなんですが
105 名前:デフォルトの名無しさん [2020/10/09(金) 19:55:04.43 ID:/2wG1kS2.net] dosshellよりはシェルっぽい
106 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 20:56:01.11 ID:bdkjFn4I.net] Wiki見るとジャンル的にはコマンドプロンプトもコマンドラインインタプリタ(シェル)みたいなんですが、 あんまりシェルって読んでる人いないですよね
107 名前:デフォルトの名無しさん [2020/10/09(金) 20:57:57.12 ID:verB6kW/.net] そりゃWinfowのシェルはエクスプローラーだもの
108 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 21:33:57.08 ID:pYgpY0Tn.net] cmdがコンソールくっついてんのは設計の失敗だよなあ powershellでも同じ轍を踏んでるし 客から黒い画面邪魔って何億回言われてんだろう あふぉが過ぎる
109 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 21:38:55.75 ID:0CTZ1NG3.net] 黒い画面なしで起動することは可能なんだから、 何億回も言われてるのはお前の問題
110 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 22:58:55.17 ID:4BFKVw+u.net] 黒いの嫌なら白に設定しろ
111 名前:デフォルトの名無しさん mailto:sage [2020/10/09(金) 23:53:38.68 ID:760t1BpC.net] >>96 youtube-dl とか、そんな複雑な処理は、Ruby, VBScript, PowerShell などで作るべき 複雑なバッチファイルなんて、保守できない
112 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 00:20:53.75 ID:9msS7xxw.net] いや、Updateと普通のURLはbatに組み込まない方がいいだろ 直接使ってもさほど変わらない ok.ru専属batにしたほうがいい
113 名前:デフォルトの名無しさん mailto:sage [2020/10/10(土) 03:21:12.75 ID:I6aD6+Ht.net] >>111 ok.ruだけじゃないんだよ某サイト
114 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 08:59:02.91 ID:uWZZ3h6O.net] batのウィンドウを非表示で実行するためにvbs噛ませてたんだけど「このスクリプトには、悪質なコンテンツが含まれているため、ウイルス対策ソフトウェアによりブロックされています。」って言われるようになっちゃった
115 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 09:08:42.65 ID:/L2D78D0.net] >>113 batのショートカットを最小化で実行するとかは
116 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 20:13:47.65 ID:P0HYJFd1.net] >>114
117 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 20:15:27.38 ID:P0HYJFd1.net] >>114 それだと一瞬黒い画面が表示されない? 115は書き損じ
118 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 20:31:14.01 ID:/L2D78D0.net] >>116 ショートカットのプロパティで最小化する
119 名前:ネら表示されないでしょう タスクバーには出てくるけど [] [ここ壊れてます]
120 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 21:12:48.29 ID:P0HYJFd1.net] >>117 今win8で実行したら表示されなかった。 俺環'(116はwin10)だったみたい 原因調べてみよ、ありがとう
121 名前:116 mailto:sage [2020/10/11(日) 22:14:08.72 ID:P0HYJFd1.net] 勘違いだった タスクスケジューラにショートカットを指定してもbatファイル本体の指定に切り替わるみたいなので startコマンドにminオプション付けてbatファイル本体を実行してたのを ショートカットで最小に指定してもdos窓が一瞬表示されると間違って覚えてた、恥ずかしい
122 名前:デフォルトの名無しさん mailto:sage [2020/10/19(月) 21:03:48.43 ID:i1CJTVJK.net] 「コマンドプロンプトは黒い画面に文字がたくさん出て怖い」→「チャット風」にしてみた LINEみたいで「分かりやすい」と話題に https://nlab.itmedia.co.jp/nl/articles/2010/19/news073.html
123 名前:デフォルトの名無しさん mailto:sage [2020/10/20(火) 00:04:16.20 ID:jnlumX7z.net] >>120 考えた人、特許取ってあるのかな microsoftが真似すると思う
124 名前:デフォルトの名無しさん mailto:sage [2020/10/20(火) 01:21:04.79 ID:0/xBmjm3.net] >>121 MIT
125 名前:デフォルトの名無しさん [2020/10/20(火) 11:26:40.30 ID:jR74MZK7.net] 使ってないけどこのダサい画面なんとかならんのかね 特に色使い
126 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 07:53:43.00 ID:CPbRFFCx.net] >>113 おれも。 vbs 呼んでたのが原因か。 原因がわかって少し納得した。 けれど中身に関わらず勝手に実行できなくしてしまうのは大問題だよな > マイクロソフト
127 名前:デフォルトの名無しさん [2020/11/27(金) 17:54:04.98 ID:w5Az7J0d.net] cd ... 点3つ で2階層上のディレクトリに上がれるのって どのWindowsの機能だっけ?
128 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 23:22:30.42 ID:MUwYgmwm.net] 本家Windowsの末裔である95
129 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 23:22:47.95 ID:MUwYgmwm.net] からMe
130 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 22:35:28.22 ID:BCe3tfGB.net] コマンドプロンプトのコピペが化ける。 全角の二重引用符を貼り付けると半角になった。 他にも化ける文字ってあるのかな
131 名前:デフォルトの名無しさん mailto:sage [2021/01/15(金) 23:17:05.02 ID:na+cGcWl.net] forループでフォルダ内のファイルを取得するときにファイル名だけ抽出するコマンドってなんでしょう? 「%~n.txt」とか色々試したのですが、何を入れてもそんなファイルは存在しないといわれてしまいます(「%~n.txt」なら「%~n.txtは存在しない」) ググってもわからなかったのでお願いします for %%f in (フォルダパス) do ( ここで処理したい )
132 名前:デフォルトの名無しさん mailto:sage [2021/01/15(金) 23:17:58.97 ID:na+cGcWl.net] >>129 これbatファイルです
133 名前:デフォルトの名無しさん mailto:sage [2021/01/15(金) 23:36:01.03 ID:OOSIw0eU.net] for %%f in (*.txt) do (echo %%~nf) help for読もう
134 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 00:20:33.58 ID:MUPXwQYg.net] for %%f in (*.txt) do (echo %%~f) for /F "TOKENS=1" %%f in ('dir /B *.txt') do (echo %%~f)
135 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 00:25:52.93 ID:xL4nSAcD.net] それ "delims=" と勘違いしてる?
136 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 00:45:01.02 ID:MUPXwQYg.net] ごめん tokens=1はいらなかった。余計だった
137 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 00:56:21.35 ID:KTlk0YqY.net] >>131 ありがとう help forというのはどこでもみれますか? コマンドをたたいてもググってもやっぱり出てきません
138 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 01:10:21.04 ID:No4exMNc.net] help for でも for /? でも出ると思うけど https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/for https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/for
139 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 01:19:53.49 ID:KTlk0YqY.net] >>136 ありがとう
140 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 19:13:54.7
] [ここ壊れてます]
141 名前:4 ID:P1MpJdzu.net mailto: 質問失礼します。 複数あるフォルダのフォルダ名を、内包しているファイル名に一括変更するスクリプトを作る事は可能でしょうか? https://f.easyuploader.app/eu-prd/upload/20210124175415_346e74754c734e59584e73676b744330.png 分かりづらく申し訳ないのですが、この様にフォルダ名を内包されたファイル名に変更したいです。 色々と調べたのですが素人故どのような書き方をすればいいのか分からず… 宜しければご教授頂きたいです 宜しくお願い致します。 [] [ここ壊れてます]
142 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 22:05:10.09 ID:N4f0FgIr.net] >>138 setlocal enabledelayedexpansion for /f "delims=" %%a in ('dir /ad /b *') do ( set "dr=%%~nxa" for /f "delims=" %%c in ('dir /a-d /b !dr! ^| sort /r') do set "file=%%~nc" if defined file ren "!dr!" "!file!" set file= set dr= ) endlocal
143 名前:デフォルトの名無しさん mailto:sage [2021/01/25(月) 23:01:36.92 ID:esdkgJAR.net] >>139 a.zip,b.zip,c.zip,d.zip…というのはあくまでも例で 実際にはいつもそんな名前ではないと思われるが?
144 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 00:03:58.29 ID:ECUGH5kE.net] >>139 /o-nを使わずにsortするのは何か理由でもあるの?
145 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 00:23:50.23 ID:ECUGH5kE.net] あとドライブ直下が対象だとdir /adだと、 $RECYCLE.BINやSystem Volume Informationなどシステムフォルダまで見えちゃうね 中のファイルが見えなかったりリネームできなかったりで実害は無いのかもしれないけど /ad-sの方がいいね
146 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 00:44:20.98 ID:CijQ7yAc.net] >>140 単純にdirで列挙されるファイルリストの最初のファイル名を使おうとしてるけど、何を言いたいのか分からない >>141 確かにdir /o-nで問題ないです sortでないとだめな理由はない あとドライブ直下でテストはしてなかったからシステムディレクトリは盲点だった ありがとう
147 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 01:23:39.15 ID:ECUGH5kE.net] a010.txt, a2.txt だとかエクスプローラとdirの昇順の並び順が異なってくるのはどう対処したらいいんだろう
148 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 02:02:45.97 ID:YrHBLfuO.net] 疑問に感じたらググれ すぐ見付かる
149 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 02:28:00.25 ID:mwA/u23E.net] >>139 ありがとうございます!!出来ました感激です 教えていただいて更に恐縮なのですが、ファイル名昇順の一番上の名前ではなく、一番最後の名前にするにはどの部分を変えれば良いのでしょうか…? 教えて頂ければ幸いです。宜しくお願い致します。
150 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 02:57:22.05 ID:YrHBLfuO.net] in ('dir /a-d /b !dr! ^| sort /r') do ↓ in ('dir /a-d /b !dr!') do
151 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 03:28:21.19 ID:mwA/u23E.net] >>147 ありがとうございます >>147 こちらを先程の「>>139 先頭ファイルへのリネーム.cmd」をしたフォルダで試した所「ファイルが見つかりません」とエラーメッセージが出てファイル名の変更が出来ないのですが何故でしょうか…。 まだ何もしていないフォルダへのリネームは>>147 の「末尾ファイルリネーム.cmd」でも出来ました。一度しか使えないバッチファイルなのでしょうか…。
152 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 03:55:31.46 ID:YrHBLfuO.net] in ('dir /a-d /b "!dr!"') do
153 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 17:47:59.55 ID:mwA/u23E.net] >>149 ありがとうございます こちらに変更した所何度でも上書きでリネームすることが出来ました。 本当にありがとうございます
154 名前:デフォルトの名無しさん mailto:sage [2021/01/26(火) 18:30:12.90 ID:3Vc5Ni7z.net] あんた昇順の意味わかってる?
155 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 14:18:42.02 ID:zQyl/e7v.net] for %%c in ("!dr!\*") do
156 名前:デフォルトの名無しさん [2021/01/29(金) 20:04:30.58 ID:nZkldKO7.net] ドラッグアンドドロップしたファイル(複数)を下の ffmpeg -i "AAA.flv" -vcodec copy -acodec copy "AAA.mp4" に入れたいです。ドロップするファイルはffmpegが置いてあるフォルダにありますが、できれば異なるフォルダからのファイルでも可能にする方法もあれば知りたいです。 よろしくおねがいします。
157 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 20:16:16.41 ID:MVM9RsSY.net] 例えば、ドロップしたファイルが、a, b, c とすると、 どういうコマンドにしたいの?
158 名前:デフォルトの名無しさん [2021/01/29(金) 20:27:09.50 ID:nZkldKO7.net] a,b,cの動画ファイルをffmpegで変換して、それをドロップ元のフォルダに保存したいです。変換の内容は"a.flv"→ "a.mp4"です。
159 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 20:32:39.25 ID:mJjQcNNM.net] ffmpeg.exeをpathの通ったディレクトリに配置 またはffmpegのPathを環境変数Pathに追加 :: D&Dで使うならショートカットの作業ディレクトリを空欄にする :LOOP if not exist "%~1" pause &exit /b start "" ffmpeg -i "%~1" -vcodec copy -acodec copy "%~n1.mp4" shift goto :LOOP
160 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 22:13:01.62 ID:MVM9RsSY.net] PowerShellスクリプトにドラッグ&ドロップしたファイルを処理させる方法 https://4thsight.xyz/15324 ショートカット・バッチファイルに、D&D して処理する
161 名前:157 mailto:sage [2021/01/29(金) 22:55:34.81 ID:MVM9RsSY.net] Ruby なら、デスクトップのa.rb に、下のように書いて、そのショートカットを作る。 ショートカットのリンク先を、C:\Ruby25-x64\bin\ruby.exe a.rb とする。 これで、ショートカットにD&D した、すべてのファイルのフルパスが表示される sleep は、コマンドプロンプト画面を終了させないため puts ARGV sleep 60 * 60 * 24
162 名前:デフォルトの名無しさん [2021/01/30(土) 00:09:57.42 ID:cwRmtLqZ.net] >>156 ありがとうございます!できました。
163 名前:157 mailto:sage [2021/01/30(土) 19:43:14.44 ID:txnUgrNq.net] >>158 修正 Ruby なら、デスクトップのa.rb に、 puts ARGV と書いて、そのショートカットを作る ショートカットのリンク先を、コマンドプロンプトとする。 cmd@.exe で、ruby で、a.rb を実行する。 C:\Windows\System32\cmd@.exe /k "ruby a.rb" 書き込めないので、@を付けましたが、 cmd@.exe の、@を抜いてください これで、ショートカットにD&D した、すべてのファイルのフルパスが表示される
164 名前:デフォルトの名無しさん mailto:sage [2021/01/31(日) 02:25:30.48 ID:x4IKZ5QX.net] batの初心者的質問する奴にとって、Rubyはとてもじゃないが手が出ないだろうな
165 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 05:23:20.56 ID:oQfB5lBJ.net] cmdよりrubyが難解!って粘着して説くやつなんなんだろ 俺はフリーダムなruby結構好きだけど、rubyアンチはcmdスレにまで出張ってくるんだな 理解に苦しむ
166 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 05:31:05.37 ID:EC31O1b+.net] とうとう変人が来るようになってしまったなあ
167 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 18:33:37.40 ID:IPUoPaen.net] そもそもruby自体がスレ違いな件
168 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 18:39:35.41 ID:EC31O1b+.net] スレ違いとまでは言わないけど、インスコしなきゃ使えないのでハードルは高い
169 名前:デフォルトの名無しさん [2021/02/11(木) 12:48:49.05 ID:VoBWc0YM.net] https://mevius.5ch.net/test/read.cgi/tech/1542779527/213 過去ログにあった7z圧縮して指定したディレクトリに出力するコマンドですが 指定したファイル名の前に日時を入れることはできるでしょうか 20210211_○○○○.7zのような感じになればいいです
170 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 14:43:56.17 ID:kRZRZf9v.net] そのスレの、>211の、 set /p n=書庫名(拡張子なし)= の前に、20210211_ を付ければ、 20210211_○○○○.7z になるのでは?
171 名前:デフォルトの名無しさん [2021/02/11(木) 15:18:16.59 ID:VoBWc0YM.net] >>167 ありがとうございます しかし今日ならそれでもいいのですが明日以降は 同じ20210211_という過去の日付になってしまいますよね
172 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 15:28:40.76 ID:L2KAeCmI.net] set yyyymmdd=%date:/=% でいけると思う(XP以前だとこれじゃダメだけど)
173 名前:デフォルトの名無しさん mailto:sage [2021/02/11(木) 15:50:55.44 ID:ILn4iPBu.net] dateは環境によって表示が異なる 各々の環境に合わせて置換整形する必要あり
174 名前:デフォルトの名無しさん [2021/02/11(木) 16:20:50.85 ID:VoBWc0YM.net] set n=%date:/=%_[ファイル名] これで 20210211_○○○○.7z のように付きました >>167 >>169-170 皆さんありがとうございました
175 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 23:31:21.72 ID:Jyf2ilAM.net] batわけわからんからpowershellいったらもっとワケワカラン
176 名前:デフォルトの名無しさん mailto:sage [2021/02/13(土) 08:23:53.63 ID:gaZOPqJ3.net] vbsへようこそ
177 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 17:33:37.55 ID:05vP8Ot3.net] プロ仕様、というかシス環向けだからな… とりあえずエイリアス一覧に載ってるのだけ覚えればcmdっぽいモノとしては使える
178 名前:デフォルトの名無しさん [2021/02/16(火) 20:29:09.86 ID:f5pz/7Q8.net] psは漢字ひらがなが露骨にズレるから辞めました 今は直ってる?
179 名前:デフォルトの名無しさん mailto:sage [2021/02/16(火) 21:05:12.71 ID:F9q4wvox.net] ファイル操作とか、PowerShell・シェルスクリプトよりも複雑な処理は、Ruby
180 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 15:04:11.28 ID:JcWwc4WJ.net] >>175 全部かどうかはわからんけど直ってるよ 普通に使ってておかしいと思うことは無くなった
181 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 16:19:47.24 ID:18/0dmLg.net] 以前こちらで教えていただいた「内包しているファイルの一番降順のファイル名をフォルダ名にするバッチ」ですが >>138 ドラッグしていない同階層の別フォルダまで勝手にリネームしてしまったり、数回使うとファイル名が見つかりませんと出てリネーム出来なくなってしまいます。 setlocal enabledelayedexpansion for /f "delims=" %%a in ('dir /ad /b *') do ( set "dr=%%~nxa" for /f "delims=" %%c in ('dir /a-d /b "!dr!"') do set "file=%%~nc" if defined file ren "!dr!" "!file!" set file= set dr= ) endlocal こちら、ドラッグした同階層のフォルダまで全てリネームしてしまうようになってしまいますか? ドラッグしたフォルダのみ、何度でも使えるようなバッチにするには何処を書き換えればよいか分かる方いらっしゃいませんでしょうか
182 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 17:36:24.38 ID:XjBeFdEa.net] ドラッグするのか 後からそんなこと言われてもな
183 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 17:44:37.07 ID:L78BN9q1.net] ドラッグしたファイル名はパッチファイルの引数に渡る 引数を読んで処理するように作らないとね
184 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 18:25:07.90 ID:XjBeFdEa.net] どっかおかしいかも @echo off for %%i in (%*) do set d=%%~i& call :x exit /b :x cd /d "%d%" || exit /b FOR /F "delims=" %%j IN ('dir /b /a-d /o-n') DO cd .. & ren "%d%" "%%~nj" & exit /b
185 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 18:52:08.32 ID:ZmDWWGuE.net] >>179 ->>180 本当にすいません 勝手にドラッグするものと勘違いしていました ドラッグではなく同一階層内で実行でしたね…。 できればフォルダドラッグで実行できればとても楽なのですが >>181 ありがとうございます 試させて頂きます
186 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 22:56:18.83 ID:LXOFF6tt.net] ネットワークアダプタがデバイスの都合で、 「イーサネット 2」、「イーサネット 3」…とインターフェースの後ろの番号がどんどん増えていきます。 これの有効なインターフェース名を取得したいのです。 レジストリとかでもいいですが、 「netsh interface show interface」コマンドの出力の名前欄で、 最初の「イーサネット〜」を正確に取得したいのです。 がうまく切り出せません。 うまいやり方を教えてください・
187 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:20:10.90 ID:18/0dmLg.net] >>181 を教えてもらいましたが実行してもリネーム出来ませんでした
188 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:34:32.73 ID:XjBeFdEa.net] >>184 もっと具体的に >>183 set "c=netsh interface show interface" for /f "skip=2 tokens=4*" %%i in ('%c%') do echo "%%i"
189 名前:デフォルトの名無しさん mailto:sage [2021/02/17(水) 23:46:04.68 ID:XjBeFdEa.net] 間違えた for /f "skip=2 tokens=3*" %%i in ('%c%') do echo "%%j"
190 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 00:48:33.87 ID:gO/gzQD2.net] for /f "tokens=3*" %%a in ('
191 名前:netsh interface show interface^|findstr "^有効"') do echo "%%b" [] [ここ壊れてます]
192 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 01:17:19.39 ID:duO8GsyP.net] >>185-187 ありがとうございます! 無事切り出せました。
193 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 02:52:52.35 ID:seGTs/0b.net] >>185 すいません、>>181 の通りbatを作りましたが、ドラッグしても何も起こりませんでした。
194 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 04:33:33.04 ID:SiC3vOBB.net] 宿題は自分でやろうよ
195 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 06:38:53.51 ID:tGVFfDdH.net] >>189 D&Dしたフォルダのフルパスは内緒か? 半角スペースは含まれているか? 半角の )^& 等の文字は含まれているか?
196 名前:デフォルトの名無しさん mailto:sage [2021/02/18(木) 10:29:50.83 ID:GbAv/KX+.net] @echo off&setlocal set E= :MAIN set N= pushd "%~1" || pause&exit /b for %%a in (*) do set "N=%%~na"&goto :BR :BR popd if defined N (ren "%~1" "%N%") else set /a "E+=1"&echo err:"%~1" shift if exist "%~1" goto :MAIN if defined E pause
197 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 07:38:35.26 ID:QeMEegpO.net] setlocal と goto br は要らんぞ。たぶん
198 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 14:27:59.70 ID:E9a6ZzGX.net] setlocalは使用変数を局所化する コマンドプロンプトで実行後も、使った変数は使う前の状態に戻る
199 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 14:39:22.20 ID:Wnqd+KEH.net] ドラッグ&ドロップで使用することだけを考えたら確かに不要だが 習慣としてつけておいた方がよさげ
200 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 15:37:05.59 ID:1yTQ5ZhE.net] 無意味なもの付ける習慣はやめた方がいい
201 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 17:34:28.26 ID:Wnqd+KEH.net] コードの流用を考えたら無意味ではないと思うが まあ今回の質問者にとっちゃどうでもいいことかもね
202 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 17:57:51.89 ID:E9a6ZzGX.net] ちゃんとした言語を使っている人ほどそういう点に気を配る傾向があるかな 俺は分かってさえいればどっちでも良いと思う 付けててもbatの組み合わせとかに気をつけてるんだろうなって思うだけで 別に文句を言うようなことでは無いと思う
203 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 18:16:09.12 ID:QeMEegpO.net] 別に文句は無いが蛇足だね
204 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 18:26:24.18 ID:E9a6ZzGX.net] >>199 考え方は違ってて当然だし、文句言いたけりゃそれもまたありだろ 俺のことを言えば、自分で使う場合は付けないが 誰がどう使うか分からない公開するようなものだとちゃんと始末する
205 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 18:33:33.57 ID:QeMEegpO.net] あと、思ったんだが「一番降順のファイル名」って何? 日本語は紛らわしいなあ
206 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 19:05:53.94 ID:E9a6ZzGX.net] >>201 の一番降順のファイル名ってので、goto :BRが必要だってのは分かったけど >>192 の内容ちゃんと見てなかった けど、>>178 のとは処理が違うのでは? たぶん質問者は複数のフォルダをD&Dするんじゃなくて、一つのフォルダをD&Dしたら、 そのフォルダをリネームするんじゃなくて そのフォルダの中のサブフォルダを全部リネームして欲しいんだと思う
207 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 19:12:54.09 ID:E9a6ZzGX.net] あれ、一番降順のファイル名って正順で一番最後って意味か
208 名前:デフォルトの名無しさん mailto:sage [2021/02/19(金) 19:14:31.95 ID:+IamAtI7.net] >>202 > サブフォルダを全部 >>178 > ドラッグしたフォルダのみ
209 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 00:07:13.08 ID:mSOvESBF.net] Windowsバッチにて変更をするためのコマンドラインを教えていただけませんでしょうか。 端末が複数あり端末ごとのバッチファイルではなく端末一覧から選択し各端末のIP設定を行いたいです。 1:端末1 2:端末2 3:端末3 どのネットワークに接続しますか[1,2,3]? 上記のような感じで番号を選択すると下記の通り設定させたいです。 端末1 IP:192.2.10.101 サブネットマスク:255.255.255.0 デフォルトゲートウェイ:192.2.10.100 端末2 IP:192.168.10.101 サブネットマスク:255.255.255.0 デフォルトゲートウェイ:192.168.10.100 また、DNSサーバーは設定する必要はなく、IPv4のIP,サブネットマスク、デフォルトゲートウェイの3項目でよいです。 どなたかプログラミングに詳しい方助けてください。
210 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 01:41:29.81 ID:wcX5jbIj.net] >>205 choiceとnetsh使えばいいよ
211 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 02:25:49.54 ID:8PZAxred.net] >>181 も>>192 もドラッグしても何も起こりませんでした https://i.imgur.com/g5O9vPN.png 1、2、3というファイル名のZIPが入っている「TEST」フォルダをドラッグ https://i.imgur.com/5AerIN4.png このTESTというフォルダが3というフォルダ名になれば良いのですが…。 ドライブ直下では他のフォルダ名が変わってしまうと怖いのでP/新しいフォルダ/test という階層で試しています やはり不可能でしょうか
212 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 08:41:00.03 ID:iGzMgm/L.net] おれ環で試したところ、 >>181 では test が 3 に変わったが。 test を test) にするとダメだが。 >>192 は test は変わらん。というか他人のバッチは知らんわ。 試しに、このバッチにドラッグしてみて @echo off echo %* pause こう表示されなければシステムの問題 P:\新しいフォルダー\test
213 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 09:28:04.09 ID:iGzMgm/L.net] >>192 の5行目 pushd "%~1" || (pause&exit /b) あと &goto :BR と :BR は要らん
214 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 23:25:00.87 ID:mSOvESBF.net] >>206 作っていただけませんでしょうか、、、
215 名前:デフォルトの名無しさん mailto:sage [2021/02/23(火) 23:58:17.09 ID:vON2H8DW.net] まさかただでやれと?
216 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 08:24:23.61 ID:PISIFT9J.net] >>210 助けろって全部作れってことかよ だるいし「、、、」が気持ち悪いからパス 使うコマンド教えたのに自分で作って貼りもしないくせに作れは論外 あとは使い方調べてやりたいようにやるだけじゃん 自分で作らないと理解できずに>>178 みたいになるのが目に見えてる >>1 読んだらそういうスレじゃないことわかるだろ
217 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 10:07:20.78 ID:wDwSsMVY.net] 聞く前にまずググれ バッチ IP変更
218 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 21:12:07.08 ID:6sz2UuTx.net] これはひどい
219 名前:デフォルトの名無しさん [2021/02/24(水) 22:09:11.14 ID:lmMJyFPq.net] つーかなんで手動選択なん? 端末で走らせるなら端末名取れるだろ
220 名前:デフォルトの名無しさん mailto:sage [2021/02/24(水) 23:24:44.75 ID:m3EDeT3k.net] どういうこと そのBATはUSBか何かに入れて各端末に持ち込むのか それとも既に繋がっている端末にリモートで変更するのか (各端末が一つのネットワークじゃ無くて別なところも気になる)
221 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 03:47:04.44 ID:2izs5u42.net] いや、もうどうでもいいだろ
222 名前:157 mailto:sage [2021/02/25(木) 11:51:36.12 ID:dOCTT7eM.net] >>138 >>157-160 の、160 のa.rb 内に、Ruby で書いた。 このショートカットに、複数フォルダをD&D する ソートの昇順・降順は、ソート後の配列.first/last で ただし、日本語のファイル名では、\x{8356}\x{8387}\x{815B} のように表示されてしまう。 DryRun を使ったので、実際には実行されません require 'pathname' require 'fileutils' # ドットよりも前の、文字列を返す。ab.cd.xy なら、ab を返す。 # ab.cd を返したいのなら、rindex を使う def before_dot( str ) idx = str.index( "." ) # ドットの位置を、先頭から探す # idx = str.rindex( "." ) # ドットの位置を、末尾から探す if idx # ドットが有れば str[ 0, idx ] # 最初から、idx 文字数分を切り出す else str end end 次へ続く
223 名前:157 mailto:sage [2021/02/25(木) 11:53:03.33 ID:dOCTT7eM.net] # ARGV は、D&D した複数フォルダの配列で、1つずつ処理する ARGV.each do |full_path| dir_path = Pathname.new( full_path ) next unless dir_path.directory? # フォルダ以外は処理しない # 直下のファイルのみを取り出して、ファイル名でソートする file_names = dir_path.children( ).select( &:file? ).map( &:basename ).map( &:to_s ).sort file_name = file_names.first # 昇順 # file_name = file_names.last # 降順なら、これを使う file_n = before_dot( file_name ) # 上で定義した関数 dest_path = dir_path.parent.join( file_n ) # 変更後のフォルダ名 # 変更後のフォルダ名が、既に存在する場合は、エラー raise "#{ dest_path } が、既に存在します" if dest_path.exist? FileUtils::DryRun.move( dir_path, dest_path ) end
224 名前:デフォルトの名無しさん mailto:sage [2021/02/25(木) 12:05:28.17 ID:Ps3dMfcs.net] もう質問者は来ないよ
225 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 17:41:39.49 ID:1pB7u9PK.net] errorlevel 9009 はなぜ9009なのですか? 他の数字じゃダメだったんですか?
226 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 19:21:37.30 ID:6R5ygXlK.net] 1919とか4545とか0721じゃ不快だろ?
227 名前:デフォルトの名無しさん mailto:sage [2021/03/03(水) 23:07:15.98 ID:EQp2xIYJ.net] qooq!
228 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 01:00:16.15 ID:qQ3/2C8M.net] 1123
229 名前:デフォルトの名無しさん mailto:sage [2021/03/04(木) 07:32:57.88 ID:YnU/cJu1.net] 4126
230 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 05:40:32.23 ID:WB4N5jzF.net] delコマンドでファイルを消すことはできますが ゴミ箱に入れたい場合はどうすればよいのでしょうか?
231 名前:デフォルトの名無しさん mailto:sage [2021/03/09(火) 06:44:52.98 ID:psHK4d9P.net] 「cmd ゴミ箱へ移動」でググれ
232 名前:226 mailto:sage [2021/03/13(土) 01:44:32.44 ID:aqgAbZuG.net] >>227 cmdではムリポな件、承知しました><
233 名前:デフォルトの名無しさん mailto:sage [2021/03/13(土) 03:06:59.13 ID:pthlsCp5.net] >>228 なんで? WSHやPowershellでのサンプルがいっぱい見つかるだろ それをbatに組み込めばいいだけ 【例】 set filepath=%~f1 rem -- 削除確認メッセージ付き --- powershell -C "(new-object -comobject \"Shell.Application\").NameSpace(0).ParseName(\"%filepath%\").InvokeVerb(\"delete\")" rem -- メッセージなし --- rem powershell -C "(new-object -comobject \"Shell.Application\").NameSpace(10).MoveHere(\"%filepath%\")"
234 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 08:41:49.24 ID:ERIrsy59.net] 「color ec」で黄色背景の赤文字とかやってたんだけど いつのまにかカスタードクリームみたいなうっすい黄色になってるな XPの頃は真っ黄色だったのにいつからこんな中途半端な色になったんだ?
235 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 08:59:02.64 ID:gb0Yw1OG.net] c md.exeちょいちょいアプデされてるからな プロパティで[レガシーコンソールを使用する]をオンにしたら昔の仕様になるかもよ
236 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 11:33:33.41 ID:IKUBKfoT.net] >>230 たぶん2017年に変った Windows 10 build 16257 https://devblogs.microsoft.com/commandline/updating-the-windows-console-colors/
237 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 12:49:31.12 ID:qU+vdcAr.net] c md.exeってNGなのかよ
238 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 12:58:34.93 ID:IKUBKfoT.net] cmdで実行できるのに.exe付けるとNGとか意味不明だよな
239 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 13:03:44.31 ID:qU+vdcAr.net] command.com powershell.exe
240 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 13:27:25.65 ID:yqDq0P8A.net] 以前それを含むウィルスの一部コードだと思われるものが貼られまくったせいだと思う
241 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 13:29:51.79 ID:yqDq0P8A.net] 補足しておくと、ノートンが反応しまくってスレdatファイルを消しちゃうので スレが見れない連発ね
242 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 13:47:35.81 ID:IKUBKfoT.net] cmd とか "cmd".exe とか %comspec% とか穴だらけ
243 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 17:20:06.07 ID:YZ6QCAld.net] cmd.exe これでどうだ?
244 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 21:10:49.47 ID:ERIrsy59.net] >>232 なるほど時代(LCD)に合わなくなったってことか、サンクス。。 >>231 再起動必要みたいだから今度再起動する時(1か月後ぐらいかな?w)に試してみます。
245 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 21:18:24.54 ID:ERIrsy59.net] しかしMS-DOS時代みたいなあのどぎつい黄色が良かったんだがなあ・・・残念・・・
246 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 22:23:48.05 ID:FrFq7CFg.net] ANSY.SYSのおもひで
247 名前:デフォルトの名無しさん mailto:sage [2021/03/22(月) 23:49:54.90 ID:IKUBKfoT.net] >>241 https://mevius.5ch.net/test/read.cgi/tech/1542779527/8
248 名前:デフォルトの名無しさん [2021/03/23(火) 00:45:55.21 ID:5blhcD6i.net] >>242 ANSI.SYSな
249 名前:デフォルトの名無しさん mailto:sage [2021/03/23(火) 02:32:13.78 ID:QbxOC6mC.net] >>244 あい
250 名前:241 mailto:sage [2021/03/23(火) 22:14:27.04 ID:lgCFvm/4.net] >>243 現場の検証用PCなんでレジストリいじるのはNGでしたわw でもこんな方法もあるんだね。参考になったよサンクス
251 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 14:20:41.98 ID:yj6gJxmr.net] 漏れは、WSL2 のコンソールが見にくいので、 Microsoft 製のColorTool で、配色テーマを変えてる 多分これも、レジストリをいじっている
252 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 16:41:09.17 ID:cQ6WYo0q.net] 俺は最近 Windows Terminal を使いだした settings.jsonの設定が面倒くさい でも >>128 のようなコピペのバグが無いので助かる
253 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 18:12:34.74 ID:uMlO6v/T.net] >>248 ディレクトリを指定して開けないので使いづらい
254 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 19:38:25.90 ID:d/Fx9DKH.net] >>249 -dで指定できない?
255 名前:デフォルトの名無しさん mailto:sage [2021/03/24(水) 21:27:53.44 ID:KCz6csQE.net] >>250 改めてアップデートしてみた試したけど 最近のバージョンだと、指定できるようになったんだな さらに1.6でコンテキストメニューにデフォルトで登録されるようになってた ただ、相変わらずライブラリやドライブで開くことはできないようだねぇ
256 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 15:46:43.29 ID:9VbgFvvG.net] >>248 なるほど そろそろ移行したほうがいいのかな
257 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 17:43:50.10 ID:vSybir0X.net] ストアアプリという時点でゴミ
258 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 18:20:21.52 ID:moYXNnAH.net] ストアアプリもマトモなやつは増えてきたよ UWPのタブレットUI強制やら特大ウンチ機能制限やらがだいぶ撤廃されて、デスクトップアプリと大差なくなったからね、ようやく まぁ遅きに失した感あるんですがね
259 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 20:02:56.96 ID:Wy51+x+D.net] wt画面に複数ファイルD&Dすると全部表示されて便利だわ コマンドの引数に使える cmd画面だと一個だけだ
260 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 20:16:38.66 ID:yyPdQtcN.net] ストアって時点でマトモとかそういう問題じゃないんだがな OSにプリインストールでもされてれば別だが
261 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 20:25:35.57 ID:yyPdQtcN.net] gitにPreinstallKit.zipってあるのな ゴミは撤回しとくわ
262 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 20:41:58.26 ID:Wy51+x+D.net] conhost.exe使ってれば
263 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 20:44:09.41 ID:MahXm1Ia.net] こんなこと言うと怒られるけど早くOS標準にしてくんないかな
264 名前:デフォルトの名無しさん mailto:sage [2021/03/26(金) 20:57:10.75 ID:Wy51+x+D.net] まだ動作が若干あやしいぞ カーソルがずれてたり 意味不明な文字が表示されたり
265 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 13:19:14.73 ID:YB/KO+42.net] batファイルで並列処理するのってやっぱ無謀? フォルダ内の画像を4並列で別の形式に変換したいみたいなやつ
266 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 13:43:34.69 ID:vSOTAguS.net] >>261 過去ログにあるから漁れ
267 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 18:07:00.76 ID:YB/KO+42.net] >>262 %10までのスレを「並列」で検索したけどそれらしいものは見つからなかったよ
268 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 19:12:28.03 ID:vSOTAguS.net] >>263 https://echo.5ch.net/test/read.cgi/tech/1424858999/857
269 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 19:48:52.56 ID:YB/KO+42.net] >>264 なるほど tasklistでプロセスが生きてるか確認ってのは思いついたけどプロセス数を数えられるのは知らなかった
270 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 21:06:39.36 ID:vSOTAguS.net] ただなあ 画像変換ごとき瞬時に終わるのでタスク監視でカウントしてる暇がないんじゃないかと
271 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 21:39:55.57 ID:YWCwVZAz.net] 何か昔書いたレスが掘り起こされてるw 画像だったら RalphaPlus を使っちゃうな フリーでないシェア版だけど64bit版でメモリ不足になることもまずなくて、 32bit版では落ちてしまうような、大きめな16画像並列とかやっても問題ないし、 変換設定ファイルをいくつも作成できるので、バッチから呼び出すのにも 都合よくて便利、おすすめ 4並列程度ならフリーのでも多分問題ないと思う、並列処理の並列(多重起動)したいなら シェア版が必要になるけど
272 名前:デフォルトの名無しさん mailto:sage [2021/04/03(土) 21:40:52.86 ID:YB/KO+42.net] >>266 最近の画像規格は変換に時間かかる上CPU使い切らないという事が多々あるからそこらへんは大丈夫だと思う まだ試してないけど
273 名前:デフォルトの名無しさん mailto:sage [2021/04/04(日) 12:25:17.64 ID:BHN4NYpU.net] 外部ツールに頼るんならpwshの力ちょっも借りてもいいのでは echo file1 ... | % -parallel {コマンド $_; ...} $_はfile_n、ジョブ数のデフォルトは5 もしかしたらプリインストールの古いやつでは動かないかも
274 名前:デフォルトの名無しさん [2021/04/09(金) 23:29:04.49 ID:0EdakHoK.net] すみません、勉強不足なのですが教えていただけますでしょうか。 コマンドプロンプトで、出力結果から特定の値だけ抜き出したいのですが、 1行に表示される一部だけ 文字数以外で指定ってできないでしょうか? ADのユーザ名を検索して日本語名だけ抽出したいのですが dsquery user -samid "username" で検索して出てくる "CN=XXX XXX,OU=ouname,DC=Dcname,DC=local " CN= のあとのXXX XXXだけ変数にいれたいのですが出来なくて困っています。
275 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 00:43:06.37 ID:lls/f8GA.net] for /f "delims==, tokens=2" %%i in ("CN=XXX XXX,OU=ouname,DC=Dcname,DC=local ") do echo %%i
276 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 11:17:28.20 ID:QzAXiJxN.net] >>271 ありがとうございます。 そもそも自分のやりたいこと書かずにすみません、 自分の環境なのかうまくうごきませんでした。 batファイルでADから実行している利用者情報をCSVかなにかでエクスポートしようとしていまして usernameだとログイン中のIDで表示されるので dsquery user -samid %usernam% とやって、cn=に出てくる日本語名だけを抽出したかったのですが、 皆さまだったらどのような方法をされるのでしょうか。
277 名前:デフォルトの名無しさん [2021/04/10(土) 12:23:55.67 ID:bRqDVIlt.net] 現在進行系の質問ありますけど追加質問させてください for /F %A in ("テスト") do echo %A %A としたときに「テスト テスト」が出力されますが 「テスト %A」を出したいときはどうすればいいですか?
278 名前:デフォルトの名無しさん [2021/04/10(土) 12:28:34.76 ID:bRqDVIlt.net] 連投すみません for /F %B in ("テスト") do echo %B %A もありなんですけど%のエスケープ知りたいです
279 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 13:02:42.59 ID:lls/f8GA.net] こっちでは dsquery を試せないので推測で @echo off for /f "delims==, tokens=2" %%i in ('dsquery user -samid %USERNAM%') do set ver=%%i echo %ver% pause
280 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 13:04:44.20 ID:lls/f8GA.net] バッチで実行して
281 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 13:10:22.83 ID:lls/f8GA.net] よくわからんが %USERNAM% でいいの? E は?
282 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 13:13:27.40 ID:IU1rFRRP.net] >>273 set テスト=%A for /f %A in ("テスト") do call echo %A %%A% バッチは%→%%と重ねる事で%のエスケープ出来るけどコマンドプロンプトでは効かない 環境変数なら echo %cd% %^cd% "%^cd%" ^"%^cd%" でエスケープ可能だけど for変数は>>274 しか無いかも for変数はアルファベットが都合悪いならメタ文字以外の記号も使えるしwin10で試したらひらがなも行けた
283 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 13:39:39.87 ID:ULgsRvVE.net] フィルタリング機能はおそまつなので 275のように一旦全部のユーザーをファイルに書き出してやったほうがいい あとはテキストエディタでも表作製ソフトでもPowershellとかでもいいけど 正規表現でフィルターすればいい というかdsqueryコマンドにフィルター機能ぐらいありそうなもんだけど 別のコマンドと組み合わせて使うならエスケープ文字は^なので for 〜 in ('dsquery 〜^|dsget 〜')
284 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 13:46:42.23 ID:ULgsRvVE.net] unicodeが使われてる可能性もあるので 安全性を取るならbatを使わずにdsqueryの出力を直接ファイルに書いた後に加工するのがいいかも とかcsvとか言ってるのでどうせエクセルとかで使うんなら そのまま"CN=〜"の出力を読み込ませたあとで加工とかも出来そうなもんだけど
285 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 14:16:22.00 ID:ULgsRvVE.net] あれ全ユーザーとかじゃなくて一つのユーザーだけなのか どっちにしろPowershellでやった方が楽だと思うよ
286 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 20:33:13.55 ID:hTFrpgtD.net] >>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! )
287 名前:デフォルトの名無しさん mailto:sage [2021/04/10(土) 22:12:46.25 ID:kfNVSQGB.net] >unicodeが使われてる可能性もあるので これがあるからバッチでは原則処理しない >>282 みたいなことしてたらその内ひどい事になる
288 名前:デフォルトの名無しさん [2021/04/11(日) 00:53:55.03 ID:X+5g0Z/F.net] >>275 ありがとうございます。%username%ですね Eが抜けました。 CSVはエクセルではなくてserverにOffice入れてないと、adidの日本語名にするのもちょっと骨でした。 ご指摘通りpowershellでできればいいのでしょうが powershellは出来る人がいないのとバッチが多すぎて一部分を直して運用していました。
289 名前:デフォルトの名無しさん mailto:sage [2021/04/11(日) 05:12:32.83 ID:8j1o2avA.net] for /F %A in ("テスト") do @echo %A %^^A| more
290 名前:デフォルトの名無しさん mailto:sage [2021/04/26(月) 14:11:50.54 ID:FVrz/3IC.net] 実行中のプロセスのCPUアフィニティを変更するコマンドは何ですか? タスクマネージャの[詳細]タブで変更したり、 startコマンドの/affinityスイッチは知ってます。 ちなみに、目的はshogigui.exeとaperyに同じコアを使わせないことです。
291 名前:デフォルトの名無しさん mailto:sage [2021/04/26(月) 16:39:41.34 ID:5VqWgajG.net] Vector に LimitCPU とかあるけど使った事ない
292 名前:デフォルトの名無しさん mailto:sage [2021/04/26(月) 17:25:33.86 ID:vupwGLI3.net] 実行中のプロセスで変更するコマンドって見当たらないな タスクマネージャーとかのGUIアプリしか見つからない 俺も知りたいわ
293 名前:デフォルトの名無しさん mailto:sage [2021/04/26(月) 18:44:26.08 ID:g+6GvbLi.net] SET powershell -c "(get-process hoge).processoraffinity=1" GET powershell -c "get-process hoge|select-object processoraffinity"
294 名前:デフォルトの名無しさん mailto:sage [2021/04/26(月) 19:13:44.30 ID:g+6GvbLi.net] GET/SETで分けることもないか(代入か否かで) あと、同じプロセスイメージが複数ある場合の例(psはget-processのalias) powershell -c "ps chrome|%{$_.processoraffinity}
295 名前:デフォルトの名無しさん mailto:sage [2021/04/27(火) 11:42:30.79 ID:SlvFgNx9.net] >>289 できたー!! dx
296 名前:デフォルトの名無しさん mailto:sage [2021/04/28(水) 18:09:24.25 ID:TBHOCaij.net] 実行中のプロセスをキルした後、exeを起動する.batは組めないでしょうか? ご教授お願いしたいです。
297 名前:デフォルトの名無しさん [2021/04/28(水) 19:31:14.30 ID:Sz6ocakQ.net] 実行中のプロセスを全部キルしたら多分Windowsがまともに動かなくなるぞ
298 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 12:33:19.43 ID:UHw0q87H.net] taskkillしてstartすりゃいいんじゃねーの
299 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 13:18:51.37 ID:QntBUF73.net] プロセスが自爆して自分の死後にexeを起動って意味?
300 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 13:34:43.19 ID:KlpY5+7M.net] >>292 キルしてもすぐ消えないプロセスがあるから失敗するということかな キルしたらもう一度プロセスが消えたかどうか確認しあればまたキルする 消えたら再起動 live2chは終了やキルしても消えない時がある(ゾンビ)
301 名前:デフォルトの名無しさん mailto:sage [2021/04/30(金) 22:44:43.29 ID:1FoMz0PJ.net] 強制終了なんてするもんじゃないのよ
302 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 17:03:35.09 ID:jBlPB1Jr.net] >>296 >live2chは終了やキルしても消えない時がある(ゾンビ) アンデッドには効かなかったはず…
303 名前:デフォルトの名無しさん mailto:sage [2021/05/05(水) 17:56:35.30 ID:PPo4cFAu.net] killできない場合のことを考えておくことだね じゃないと無限ループになる
304 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 09:43:15.42 ID:2aTzy8bW.net] %0|%0
305 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 13:03:03.56 ID:Ql061JAF.net] このスレってこういう呪文書く人多いよね enabledelayedexpansionとかも呪文にしか見えないし
306 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 13:35:53.83 ID:IBnoRfMr.net] にほんでいちばんさむいのはわっかないです みたいな綴り
307 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 14:14:27.26 ID:2aTzy8bW.net] 稚内は平均気温は低いけど最低気温は内陸部に負けるね
308 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 14:46:36.64 ID:XdIg8UA/.net] enable delayed expansion
309 名前:デフォルトの名無しさん [2021/05/11(火) 14:52:11.19 ID:0OaQcACp.net] /d- とどっちがいい?
310 名前:デフォルトの名無しさん mailto:sage [2021/05/11(火) 20:34:18.03 ID:1ruivVGt.net] EnableDelayedExpansionって書けばちょっとだけ見やすくなる
311 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 02:11:31.96 ID:Suipbxh4.net] CPU温度をコマンドで取得したいのですが、OS標準の方法は無理ですかね WMI(ACPI)は固定値の温度が返ってきて取得不可でした OpenHardwareMonitorもダメ(恐らく内部でWMIを呼び出してる)
312 名前:当然ながらhwmonitorやCoreTempでは取得できますが、値をバッチで取り込みたいんですよね… [] [ここ壊れてます]
313 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 02:33:26.74 ID:XehBH/T/.net] >>307 OpenHardwareMonitorReport https://github.com/openhardwaremonitor/openhardwaremonitor/issues/776#issuecomment-313606249
314 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 20:32:09.46 ID:Suipbxh4.net] >>307 コマンドラインに出力される以外はOpenHardwareMonitorの実行内容と同じ結果でした 1ボードマイコンのlinuxは cputemp=`cat /sys/class/thermal/thermal_zone0/temp` とかで簡単に温度が取れるのになんでじゃろ
315 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 20:32:24.17 ID:Suipbxh4.net] >>308 でした
316 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 21:20:49.69 ID:MeE+nXbq.net] CoreTempでログ有効にして最終行取るとか
317 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 22:00:07.42 ID:yHTntpLS.net] 出力をgrepとsedあたりで拾えたけど、それじゃダメなの? BusyBox入れておけばどちらも使える
318 名前:デフォルトの名無しさん mailto:sage [2021/05/12(水) 23:05:17.82 ID:Suipbxh4.net] >>311 ありがとうございます CoreTempのログから取得することにしました
319 名前:デフォルトの名無しさん mailto:sage [2021/05/14(金) 23:44:02.34 ID:T4yhaoFz.net] おかげさまでCPU自動温度調節バッチができました CoreTempのログ出力間隔がなぜかGUIの画面で設定が反映されないのでCoreTemp.iniを直接いじってLogInt=3;にしました
320 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 14:43:20.40 ID:86NTjzBm.net] 引数で✳︎1って書いて実行するとダメで ✳︎✳︎1と書くと実行してくれるというか ✳︎1として認識してくれる こういうのなんて言うんだっけ?
321 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 15:45:05.64 ID:PeQGb4Ft.net] エスケープ?
322 名前:デフォルトの名無しさん mailto:sage [2021/05/21(金) 15:56:12.09 ID:Ui9xkSyb.net] エスケープ文字でいいのかな? どう伝えたらいいか迷ってました。 ありがとうございます!!
323 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 10:35:28.68 ID:Sx47SrPe.net] dir *1* がおかしい表示をする
324 名前:デフォルトの名無しさん [2021/07/29(木) 11:36:44.20 ID:tRu2KZQa.net] ~1は付いてるだろ
325 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 17:13:03.84 ID:YC90wu7g.net] dir/x *~* やってみろ
326 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 19:38:39.37 ID:a6W4XitR.net] >>318 >dir *1* がおかしい表示をする うちもだ 何コレ
327 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 19:43:02.51 ID:YC90wu7g.net] 直ぐ上のレスぐらい読め
328 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 20:44:32.26 ID:y5w0GI0N.net] ttps://www.atmarkit.co.jp/fwin2k/win2ktips/1200disable83/disable83.html
329 名前:デフォルトの名無しさん mailto:sage [2021/07/29(木) 20:53:42.01 ID:YC90wu7g.net] dir /b | find "1"
330 名前:デフォルトの名無しさん [2021/08/22(日) 10:21:12.87 ID:ROFzyAkg.net] お教え下さい バッチファイルでなんとかあれこれ作っているんですが、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個前を取る方法しか無いのでしょうか ほとんど理解していないレベルですが、お知恵をお貸しいただければ幸いです
331 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 12:42:26.74 ID:4kURdFV7.net] >>325 配列の最後の要素は[-1]で指定できるよ https://stedolan.github.io/jq/manual/#ArrayIndex:.[2]
332 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 13:17:28.64 ID:ROFzyAkg.net] >>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 とやるとエラーになります またもやお教えいただけると助かります よろしくお願い致します
333 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 13:25:20.71 ID:ROFzyAkg.net] 連投すみません 自己解決しました パイプで別のコマンドを繋げてる時はカッコ内では | だけではなく ^| としなくてはならないのですね
334 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 15:01:46.57 ID:QCLSPIvL.net] 式評価が、行読み込み時とfor文の括弧内とで2回行われるので
335 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 16:39:15.67 ID:AGm1+oJ3.net] >>327 (`コマンド`)やろ "が一個なのも変
336 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 16:48:11.12 ID:AGm1+oJ3.net] inもないし
337 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 19:09:07.18 ID:ROFzyAkg.net] ああすみません、うる覚えてで打ってました for /f "usebackq" %%a in (`curl -X GET %henkanurl% ^| jq -r .body.playback.video_link[-1].url`) do set m3u8url=%%a これで無事に動きました
338 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 21:28:01.99 ID:Tt89WUNP.net] >>332 う「ろ」覚えな
339 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 21:36:38.14 ID:rdOjiFig.net] ×うろ ○うる
340 名前:デフォルトの名無しさん mailto:sage [2021/08/23(月) 23:16:48.35 ID:0ziHLJ5Z.net] 売る
341 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 07:13:42.95 ID:ttKQ7L6u.net] うる覚えは誤り、または誤りから派生した方言だとされている うろ 空洞 うろん 怪しい、疑わしい、乱雑 から来ているから 「うろ覚え」 が正しいよ 見せて → 見して などと同様の変化でもあるだろう 見(い)せ(え)て(え) → 見(い)し(い)て(え) と母音が前の音に引っ張られ変化するパターン 言い易くなるからか幼児語などに多く見られ、都会に比べての昔の田舎の人など知能の劣る者らが用いる傾向がある
342 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 07:54:41.61 ID:7aPnDOA3.net] usebackqいらん
343 名前:デフォルトの名無しさん [2021/08/24(火) 11:06:35.68 ID:A9/4ufwo.net] お世話になります。 ---- 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 とならないのはなぜ? また、このような出力を得たい時はどうすればよいですか?
344 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 11:10:52.17 ID:7aPnDOA3.net] set /? 読め
345 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 11:22:21.23 ID:qugHDfsR.net] callでサブルーちんに飛ばせばカウントされるよ for内は極力シンプルに
346 名前:デフォルトの名無しさん mailto:sage [2021/08/24(火) 13:03:43.42 ID:ttKQ7L6u.net] @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
347 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 00:21:43.26 ID:NZXLvzYN.net] 07: CALL ECHO %%n%% : %%%%a
348 名前:338 mailto:sage [2021/08/25(水) 08:35:00.27 ID:CHwZclnY.net] 340,341,342 ありがとう。 遅延?がどうこうって、勉強になりました。 単純な展開ですので、341の !var! 展開を使います。
349 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 12:37:01.24 ID:sbFyoxUW.net] ヘルプ読んでから質問してね
350 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 15:31:20.26 ID:Fod5ZYNl.net] CALL %FILENAME% CALL "%FILENAME%" 職場のパソコン変えたら上で動かなくて下に修正することになったんだけど仕様変更あった?
351 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 17:21:04.65 ID:sbFyoxUW.net] FILENAMEに区切り文字は無い?
352 名前:デフォルトの名無しさん [2021/08/25(水) 18:09:16.31 ID:eN7VzoDp.net] echo onなら環境変数展開後のコマンドラインが表示される なにがおかしいのかステップ実行で確認してから質問してくれ
353 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 18:59:42.87 ID:rpvOn9yc.net] >>347 ステップ実行して抜き出したのがこれなんだ
354 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 19:00:54.62 ID:rpvOn9yc.net] >>346 Onedrive同期してるフォルダーだからスペースとか今までなかったの増えてるかも
355 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 19:11:06.73 ID:sbFyoxUW.net] 区切り文字あればそれが原因でしょ 引数がフルパスなら上位フォルダもチェック 念の為にきくけどバッチファイルだよね
356 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 20:18:52.59 ID:lzuDi78b.net] >>345 こういう輩は、なんで自分以外がおかしい前提で話をするんだろう?
357 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 21:55:38.08 ID:Fod5ZYNl.net] >>351 こういうやつって掲示板にいる価値ないわ
358 名前:デフォルトの名無しさん mailto:sage [2021/08/25(水) 22:12:01.88 ID:HCLFH+1o.net] 差し支えの無い範囲でFILENAMEの中身とかバッチを見せればいいのでは?
359 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 04:16:32.18 ID:UZ8JqWyB.net] 少なくともcmdにそんな仕様変更などあるわけ無いからね
360 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 04:17:53.32 ID:UZ8JqWyB.net] 潜在バグが表に出ただけで大騒ぎすな 全部bat作ったお前が悪い
361 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 06:46:44.11 ID:dNXcmjRL.net] FILENAME がフルパスで環境変わってスペース含むようになったとかかな
362 名前:デフォルトの名無しさん mailto:sage [2021/08/26(木) 16:42:40.02 ID:LxJHntSN.net] >>342 %%%%a→%%a
363 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 09:59:58.73 ID:2ApHZNp2.net] %FILENAME%に空白が含まれたら、最初の空白までが%1になるの当たり前じゃん これを考え落とすって、8.3時代で頭の更新が止まったままの化石だね
364 名前:デフォルトの名無しさん mailto:sage [2021/08/30(月) 10:57:48.15 ID:cyOwxYqr.net] まあ空白とは限らないけどね
365 名前:デフォルトの名無しさん [2021/09/01(水) 12:25:22.16 ID:BpsqJM8W.net] 複数動画ファイルをバッチにドロップして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 ドロップせずに、パスを書いて実行したら成功はしました。
366 名前:デフォルトの名無しさん [2021/09/01(水) 12:38:53.45 ID:3LGwAbit.net] たから echo onにしろっつってんだろ
367 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 16:04:27.85 ID:rR7+iwTB.net] @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
368 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:15:47.13 ID:79X4wBHs.net] >>360 ffmpeg.exe文の前にecho を付けて画面表示を見てみろ 質問の前にそれぐらい自分でやれよ
369 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:35:20.23 ID:JwKVF6M3.net] @echo off って完成してからつけるものじゃないのか 最初からあるなんて随分と自信があるんだなぁ
370 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 17:36:38.68 ID:3SVggb9G.net] だよな
371 名前:デフォルトの名無しさん [2021/09/01(水) 21:20:41.59 ID:CWQ1EA8H.net] >>362 ありがとうございます!
372 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 21:32:18.07 ID:79X4wBHs.net] 丸投げ質問はやめてくれ
373 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 21:55:30.34 ID:t7KCJs9B.net] なんだ、>>362 でうまくいったのか つまりエラーは変換先のファイルが存在しててffmpegでエラーが出たってことだったのか 俺はエラー内容が書かれてなかったんで他のことを考えてたよ "あい うえお.mp4"とかパスに半角空白が無くて全角空白がある場合とかね
374 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 21:55:32.25 ID:MGC13/Ge.net] はいw
375 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 22:51:40.87 ID:79X4wBHs.net] -i のところやろ
376 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:03:16.29 ID:UTT/foLD.net] 例えば、デスクトップにショートカットを作る。 コマンドプロンプトを起動して、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 の空白文字も処理できるが、 ドロップしたファイルパスに空白文字があると、 パスの前後を、"〜" で囲んでも、エラーになって処理できない
377 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:06:19.43 ID:79X4wBHs.net] 突然どうした?
378 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:11:28.11 ID:79X4wBHs.net] ハッシュほしいならcertutilつかえば
379 名前:371 mailto:sage [2021/09/01(水) 23:21:55.11 ID:UTT/foLD.net] ハッシュ値を求めるのは、単なる例え。 ffmpeg の代わりに使っただけ Ruby スクリプト内で、別のプログラムを呼ぶと、 ドロップされたファイルパス内の空白文字で、はまると言うこと
380 名前:デフォルトの名無しさん mailto:sage [2021/09/01(水) 23:24:46.32 ID:RTATUgNE.net] こんなところにまでruby基地がw
381 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 09:08:23.07 ID:7LFIE/54.net] 偉ぶりたい底辺コーダーや引きこもりがここぞとばかりにワラワラとw
382 名前:371 mailto:sage [2021/09/02(木) 11:56:43.51 ID:SBJQlu/e.net] >>371 に書いたように、コマンドプロンプトから、Ruby スクリプトを起動する方法では、 ドロップしたファイルパスに空白文字があると、バグる PowerShell から、Ruby スクリプトを起動する方法では、 ドロップした複数のファイルパスを渡す方法が分からない 結局、以下のように、Ruby スクリプトを直接起動する方法では、 空白文字でも、複数のファイルパスでも、バグらない ショートカットのリンク先 C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/a.rb puts ARGV # ドロップした複数のファイルパスの配列 sleep # 出力したコマンドプロンプト画面を閉じないようにする
383 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 12:14:08.51 ID:ctEO1PZh.net] 既視感あると思ったら >>156 に同じようなのがあるね 書き方似てるし >>362 と同じ人なんだろうか start の有無の違いはなんで?
384 名前:デフォルトの名無しさん [2021/09/02(木) 12:46:43.02 ID:6AISeI88.net] >>360 >>362 すみません、複数ファイルドロップしたら1つ目しかできませんでした! あと、自分は全くプログラミングの勉強してなくて検索したものをツギハギでつくってるのでechoがどうとかよく分かってなかったです echoをonにするとどうなんですか?
385 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 13:31:10.74 ID:ctEO1PZh.net] >>379 https://www.google.com/search?q=windows+%E3%83%90%E3%83%83%E3%83%81+%E5%85%A5%E9%96%80 1ページ目に表示されてるサイト全部巡って読めば少しは分かるようになると思うよ
386 名前:371 mailto:sage [2021/09/02(木) 13:39:27.82 ID:SBJQlu/e.net] Ruby では、>>377 に書いたように、起動引数・ARGV は配列で、 そこに、ドロップした複数のファイルパスが入ってくる 出力 C:\Users\Owner\Documents\x C:\Users\Owner\Documents\あ.txt フォルダx と、ファイル・あ.txt
387 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 13:48:04.44 ID:siHMRGTz.net] >>378 知らないけどffmpegが終わるまで待ちたいのでは
388 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 14:17:42.40 ID:D5kjhyGc.net] >>379 前の質問もそうだが、どうして現象を説明しないの? 俺らが君のPCの画面やファイルを眺められるわけないじゃん エラーなら、入力した内容やファイル内容やどこまで実行されててどういう状態になってるとか書かないとわからんだろ あと362なら先頭行を削除して実行すればpauseで終了時点の状態がわかるだろ
389 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 14:24:25.53 ID:D5kjhyGc.net] あと一個とか言ったけど、以前エラーになったオペレーションだと正常になったけど 新たに別のケースが出てきたってことか? それとも以前エラーになったものは試してないってことか? 即答でありがとうなんて書けばこっちは正常になったと勘違いするだろ あと、エラー状態は>>368 の場合に該当しなかったということでいいか?
390 名前:デフォルトの名無しさん mailto:sage [2021/09/02(木) 15:55:55.97 ID:e/2zM0cp.net] >>379 コピペったバッチはShiftJISで保存した? ドラッグ&ドロップするファイルの上位ディレクトリの名前かファイル名に半角スペースを含めてもう一度試してみ ファイルやパスにShiftJIS外の文字や記号を含んでいるなら削除 それでもダメだったらファイル類を「パスのコピー」してここに貼ってみな
391 名前:デフォルトの名無しさん [2021/09/02(木) 19:03:44.33 ID:lSTkj0Rg.net] >どうして現象を説明しないの? 馬鹿につきあって解答する馬鹿がいるからです
392 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 08:16:34.23 ID:61QsYzlD.net] echoを理解できない初心者に説明しろと言っても無理
393 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 08:53:30.59 ID:VqiIv6Pi.net] え、ちょっw(echo)
394 名前:デフォルトの名無しさん mailto:sage [2021/09/03(金) 19:05:48.55 ID:nhGnJ2O1.net] 素直にコード貼るだけ全然優良でしょ オレオレ用語使う、コード端折る、妙にプライドがある奴はマジで神経擦り減る
395 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 00:32:37.15 ID:ExeocnPJ.net] ほんとにな 完全同意だわ
396 名前:デフォルトの名無しさん mailto:sage [2021/09/04(土) 08:48:55.08 ID:fYT9QIuD.net] echoなんてデバッグ用に変数の値を見たくなったときにでも覚えたら良いさ
397 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 20:59:18.22 ID:h9G3o9Tj.net] USBデバイス(マイク)の有効/無効を切り替えるバッチファイルを書いているんですが、 forループ内でファイルパスを展開してコマンドを実行する部分で躓いています。 ()内での %DEVCON% (devcon.exeの絶対パス)の展開部分ですが ''や、usebackqを使用して``とすると、にすると半角スペースごとに別文字列として展開される ``にすると絶対パスの先頭に`が付いたパスとして認識され、ファイルが見つからないエラーになる forループの()内で変数を展開してコマンドを実行する方法が分かりません。 以下が作成したファイルの内容です。ご教示お願いします。 @echo off :: devcon.exeのパス(64bit) @set DEVCON="C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" :: マイクの無効と有効 :: AT2020USB+ :: %DEVCON% disable "USB\VID_0909&PID_001C&REV_0100&MI_00" :: %DEVCON% enable "USB\VID_0909&PID_001C&REV_0100&MI_00" FOR /F "tokens=3 usebackq" %%a IN (`%DEVCON% status "USB\VID_0909&PID_001C&REV_0100&MI_00" ^| find "Driver is"`) do set "STATUS=%%a" IF "%STATUS%" == "running." ( %DEVCON% "USB\VID_0909&PID_001C&REV_0100&MI_00" ) ELSE ( %DEVCON% enable "USB\VID_0909&PID_001C&REV_0100&MI_00" )
398 名前:392 mailto:sage [2021/09/05(日) 21:01:57.75 ID:h9G3o9Tj.net] 抜けがありました 14 %DEVCON% "USB\VID_0909&PID_001C&REV_0100&MI_00" 14 %DEVCON% disable "USB\VID_0909&PID_001C&REV_0100&MI_00"
399 名前:デフォルトの名無しさん [2021/09/05(日) 21:50:58.36 ID:qFDUcsKU.net] カレントフォルダをC:\Program Files (x86)\Windows Kits\10\Tools\x64 に移動してから set DEVCON="devcon.exe" にしてみるとか
400 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:12:50.15 ID:GdXH1yQe.net] >>392 FOR /F "tokens=3" %%a IN ('^"%DEVCON% status "USB\VID_0909&PID_001C&REV_0100&MI_00" ^| find "Driver is"^"') DO set "STATUS=%%a"
401 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:17:55.22 ID:GdXH1yQe.net] >>392 あるいは>>392 のFOR文のままで @set DEVCON=C:"\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe"
402 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 23:48:28.37 ID:UFxCuC9Y.net] 漏れは、ショートカットにDrag and Drop してみた結果、 結論として、コマンドプロンプトでは、ファイルパス中の半角空白を処理できない PowerShell(PS)でも難しいかも 漏れは結局、Ruby を使っている 特に、コマンドプロンプトだけはやめて、PSを使った方が、マシかも
403 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 23:54:22.00 ID:GdXH1yQe.net] 上のはそういう話じゃない
404 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 00:15:22.61 ID:x7bnJBcc.net] >>396 両端に"がこなくするってのはアイデアだな
405 名前:392 mailto:sage [2021/09/06(月) 02:00:45.36 ID:y69jRxqh.net] >>395-396 ありがとうございます!できました
406 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 07:15:12.30 ID:yJI9//ND.net] ほえ〜、横からだけど目からウロコだわ >>396 為になった、さんきゅう
407 名前:デフォルトの名無しさん [2021/09/17(金) 15:37:36.70 ID:gyqQtjrG.net] 質問です。 メモ帳に「移動元のファイルの場所 移動先のファイルの場所」が絶対パスで半角スペースで区切られています。 これを読み込み指示通りにファイルを移動させたいのですがどのように書くといいでしょうか? また、リネームする必要があるファイルもあるのですがどうするといいでしょうか? 「C:\aa\bb.jpg D:\aa\cc.jpg」
408 名前:デフォルトの名無しさん mailto:sage [2021/09/17(金) 17:20:03.57 ID:i/XCCF5h.net] forで読んでmoveで移動 もしechoの分からない人ならやめとけ
409 名前:デフォルトの名無しさん mailto:sage [2021/09/17(金) 22:37:54.43 ID:vaLPoEyz.net] 「for バッチファイル」でググって訳がわからないようなら 、適当なエディタで開いて、" でくくるのを前提に 行頭、スペースとドライブ文字、行末、を置換してbatファイルとして名前を付けて保存 move "C:\aa\bb.jpg" "D:\aa\cc.jpg" みたいになるように なを、ファイル名にsjis
410 名前:じゃない何かが無い前提 [] [ここ壊れてます]
411 名前:デフォルトの名無しさん mailto:sage [2021/09/17(金) 23:29:19.93 ID:O1PoA15N.net] バッチは、ややこしい。 Power Shell, Ruby などでやれば? それに、そのファイルは半角空白で区切っているけど、 Windows では、ファイルパスに半角空白も入るから、バグるので、 普通に、CSV 形式にすると良い。 その代わり、CSVパーサーが必要になるけど タブ区切りのTSV も良い。 さすがにタブ文字・改行コードは、ファイルパスには入らないだろうから、簡単に取り出せる
412 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 00:13:27.23 ID:q5iJ5tLu.net] for /f "tokens=1* delims= " %%a in (List.txt) do ( set ERR= if not exist "%%~a" set /a ERR+=2 if exist "%%~b" set /a ERR+=1 if not defined ERR (move "%%~a" "%%~b") else call echo ERROR:%%ERR%% "%%~a" "%%~b">>errlog.txt ) pause
413 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 06:22:21.02 ID:KTV+OCDB.net] 横からすまんが半角スペース入りパスだとダメだよそれ
414 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 06:34:39.03 ID:KTV+OCDB.net] 移動先フォルダがないとmdで作成してやらんとエラーになるし 移動先に同名の既存ファイルがあるかも知れないし
415 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 07:21:16.02 ID:ALBIVGfh.net] いちいち横からイチャモン言う間あったらおまえがサクッと書いて貼れば済む話 ksの典型 >>402 が言ってもないことまで至れり尽くせりしてやる必要ねーだろ
416 名前:デフォルトの名無しさん [2021/09/18(土) 08:54:34.49 ID:d7JASW2c.net] >>402 です。 うまくできました。 半角スペースや日本語などは使われていませんでした。 分からないところはググりながらやってみます。 ありがとうございました。
417 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 11:01:52.40 ID:7qS0Ehxx.net] 書き捨てにするようなコードを「かも知れない」で必要以上無駄に肥大化させるのはゴミ屋敷住人と同じ愚かな思考
418 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 12:50:48.70 ID:1ehO0L4U.net] 世の中にはプログラムすること自体が好きな人がいるんだよ 誰もが間違いなくその恩恵にあずかっているのに小馬鹿にするやつは 自分への軽蔑の視線に気付かない愚か者だ
419 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 21:08:19.94 ID:OLaJCV9P.net] 恩恵w 言い訳が論点ズレてく感じホンモノのガイジ臭
420 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 21:14:40.28 ID:PJ3Z1C6G.net] こんなスレで一体、何を争う?
421 名前:デフォルトの名無しさん mailto:sage [2021/09/18(土) 21:22:43.49 ID:gRgRQYIa.net] 別にこのスレでも書いてれば気にもとめないけどね ただ今回はコードも貼らずに注文だけ言ってたからカチンとくる奴もいるだろうさ
422 名前:デフォルトの名無しさん mailto:sage [2021/09/19(日) 03:42:58.81 ID:uWgOxiqk.net] つまり自分は書けないクセに「プログラムすること自体が好きな人」とやらにネタを提供してやってるんだと そして自分のお陰で皆が恩恵に預かれるのだから自分は良い行いをしているんだと言いたいワケか おいおい何様だよw
423 名前:デフォルトの名無しさん mailto:sage [2021/09/19(日) 06:31:47.09 ID:K9vn79WO.net] C++と違ってideoneみたいのないからな
424 名前:デフォルトの名無しさん mailto:sage [2021/09/19(日) 09:03:44.20 ID:xPOv8IOw.net] 空白付ならデリミタを:にしてツギハギでいけそう
425 名前:デフォルトの名無しさん [2021/09/19(日) 12:51:30.97 ID:/yxUr6Cy.net] rm -f / だよって教えればいい
426 名前:392 mailto:sage [2021/09/20(月) 00:58:53.63 ID:we+8yYct.net] -rfじゃないとほとんど何も消えないでしょ
427 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 13:43:55.48 ID:KUdKcr1X.net] 今時バッチなんて書いてるのは物好きです おれは物好き バッドノウハウ大好きだ♥
428 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 15:39:53.65 ID:oingLDSY.net] バッチの利点 バッチ自体はウィルスにやられない みんな違うから狙われにくい
429 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 18:39:59.79 ID:1Sr76Ukf.net] ウイルスは知らんがランサムウェアで暗号化されてナイナイはされるんじゃね?
430 名前:デフォルトの名無しさん mailto:sage [2021/09/22(水) 19:49:34.87 ID:HbYg107O.net] これでバッチつくればいいぉw X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
431 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:17:21.36 ID:HAnV1WZK.net] バッチ
432 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:25:53.79 ID:HAnV1WZK.net] バッチの作り方聞きたくてコメントを書きこうもうとしたら、
433 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:26:29.06 ID:HAnV1WZK.net] >>426 あれ、つづき・・・
434 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:29:35.54 ID:HAnV1WZK.net] >>427 質問かこうとして、バッチのイメージを書くとなぜか、ERRORで弾かれる
435 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:36:10.32 ID:Veybj1d9.net] cmd .exeを書いたとかそんなことか?
436 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:45:56.14 ID:bhMjP/u8.net] 作り方w そこから?
437 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:47:46.52 ID:HAnV1WZK.net] FOR DO
438 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:48:57.34 ID:HAnV1WZK.net] しつれいしました。 fo do型式の構文を書いたらerrorになってしまう・・・
439 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 18:49:34.04 ID:HAnV1WZK.net] for do型式でした
440 名前:デフォルトの名無しさん [2021/10/13(水) 18:51:20.12 ID:mAb+BQMQ.net] for /? これ以上の説明は掲示板では不可能だからな
441 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 20:37:11.25 ID:wdMk643f.net] ここはコマンドインジェクション対策が入ってるからコード載せたいならgistとかに上げてそのURL貼ったほうが良い
442 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 20:51:02.94 ID:NsQsq1qz.net] for /L %i in (0.5=1=11) do echo %i
443 名前:デフォルトの名無しさん mailto:sage [2021/10/13(水) 21:17:55.30 ID:NsQsq1qz.net] cmd.exe /c command
444 名前:デフォルトの名無しさん mailto:sage [2021/10/14(木) 02:43:30.00 ID:TuHqoxKX.net] set /a a=b=c=0 こんな風にまとめて初期化出来るのは知ってたけど set /a "c=(b=(a=400>>2 )/25)>>2 , a-b+c" こんな書き方が出来る事に今更ながら気付いた
445 名前:デフォルトの名無しさん mailto:sage [2021/10/15(金) 20:24:48.38 ID:NLG7IfQt.net] UUエンコードしたらダメかな
446 名前:デフォルトの名無しさん mailto:sage [2021/10/15(金) 21:13:25.70 ID:53pJc6NQ.net] Base64の方がいいんじゃね certutilで変換できる
447 名前:デフォルトの名無しさん mailto:sage [2021/10/15(金) 22:55:44.35 ID:NLG7IfQt.net] 書込みテスト C:\>certutil -f -encode in.bat in.b64 C:\>certutil -f -decode in.b64 out.bat C:\>type in.b64 -----BEGIN CERTIFICATE----- ZWNobyBoZWxsbyB3b3JsZA0K -----END CERTIFICATE----- C:\>
448 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 13:44:53.76 ID:0LRNIe6v.net] >>440 certutil、知らなかった whereしてみたらあった
449 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 17:19:52.54 ID:R7AYOhq0.net] データだけのやつ C:\>certutil -f -encodehex in.bat in.b64 1 C:\>certutil -f -decodehex in.b64 out.bat 1 C:\>type in.b64 ZWNobyBoZWxsbyB3b3JsZA0K コマンド文の最後の1を4とか12にすると16進数
450 名前:デフォルトの名無しさん mailto:sage [2021/10/17(日) 19:11:59.67 ID:PSl5tmbR.net] 444
451 名前:デフォルトの名無しさん mailto:sage [2021/10/19(火) 15:20:48.60 ID:RYpZUHHW.net] >>443 恥ずかしながら初めて知った 便利
452 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 01:56:17.90 ID:3qM4VvHD.net] ダブルクリックで実行した時は最後にpauseしたいけどcmd.exeからコマンド打って実行した時はpauseを省きたい ダブルクリックはショトカから実行するようにしてショトカに目印の引数を付けておくというのは思い付いたんだけど それ以外、バッチ自身に判定させる方法ってありますか?
453 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 02:36:48.27 ID:/W0Foxxl.net] >>446 起動時の引数をそのまま参照する非公式変数を見るとかで判別できるんじゃないかな %cmdcmdline%
454 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 02:55:46.15 ID:/W0Foxxl.net] 記憶違いだった cmd.exeを起動したオリジナルコマンドラインだ それに非公式でもない
455 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 02:58:42.54 ID:lVKoKJNl.net] @echo off set a=%cmdcmdline% echo hello if /i not "%a:~1,1%"=="c" pause
456 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 03:54:49.34 ID:3qM4VvHD.net] >>447-449 うひょw聞いて見るものですね。マジ感謝! %cmdcmdline:~1,1%でセットせずとも行けるっぽいです ありがとうございました
457 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 04:07:05.64 ID:lVKoKJNl.net] >>450 %cmdcmdline:~1,1% それやると、それ以降%cmdcmdline%の値が何故か変わるぞ それ以降に%cmdcmdline%を参照しないなら問題ないがね
458 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 04:29:14.76 ID:3qM4VvHD.net] >>451 謎な挙動しますね echo %cmdcmdline% として見てcmdから実行すると二度目の実行時に C となって3度目は echoはオフです となりました if /i not "%cmdcmdline:~1.1%"=="c" とする度にまるで set "cmdcmdline=%cmdcmdline:~1.1%" としてるかのような こうならない為にわざわざ一旦setしてたんですね なるほどです
459 名前:デフォルトの名無しさん mailto:sage [2021/10/21(木) 08:32:44.52 ID:lVKoKJNl.net] setlocal & if "%cmdcmdline:~1,1%"==":" pause
460 名前:デフォルトの名無しさん mailto:sage [2021/10/23(土) 20:34:55.19 ID:ChfdQawL.net] 自分を起動した親プロセスを特定すればいいのでは ダブルクリックならexporer.exeになるはずだしcmd。exeならcmd。exe…なのか?
461 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 03:28:13.19 ID:3uu+VZsn.net] 変数が壊れてもいいなら>>453 でいいやろ。ただしsetlocalはいらん。 このif条件式だとcmd画面の2度目でも失敗しない。環境によるけど。 別変数に代入してもいいが中に&等の文字あるとエラーでこける。
462 名前:デフォルトの名無しさん mailto:sage [2021/10/24(日) 22:27:44.50 ID:jz1DejpB.net] 非公式変数で解決とか後々禍根を残しそうで嫌だな
463 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 01:03:08.48 ID:vrczGOVO.net] では禍根を残さないバッチを頼む
464 名前:デフォルトの名無しさん mailto:sage [2021/10/25(月) 01:10:34.48 ID:dZV3Jc+L.net] 非公式発言は撤回してるけど?
465 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 21:51:58.64 ID:PNXAVzCe.net] windowsで半角空白や&付ファイル名が許可されてるんだから バッチファイルにD&Dやsendtoした時の 半角空白とか&の扱いはWindows側で何とかして欲しいなと思う。
466 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 21:54:07.20 ID:tTd8I1wO.net] バッチファイルに変換される言語&コンパイラ https://github.com/toca/itch
467 名前:デフォルトの名無しさん mailto:sage [2021/10/29(金) 23:50:23.91 ID:+3zqc/Sp.net] >>459 これも%cmdcmdline%を参照して処理するしかない
468 名前:デフォルトの名無しさん mailto:sage [2021/10/30(土) 01:01:41.85 ID:ZgBEU8E6.net] &はわざとそういう仕様にしたんだろうけど全角空白については、んなもん知るか。なんだと思う コマンド類もANSIしか想定してないし 日本語ヘルプの間違いを正さないのも、敢えて、だろうね 毛唐共は底意地悪いというか強く出ないと何もしない 大人しくしてるととことん図に乗りナメくさる 欠陥あっても買ってくれて文句も言わず泣き寝入りしてくれるチョロい鴨としか思ってない
469 名前:デフォルトの名無しさん mailto:sage [2021/10/30(土) 01:07:02.66 ID:ShH7fSCq.net] 半角空白はまだしも、全角空白はいただけない
470 名前:デフォルトの名無しさん mailto:sage [2021/10/30(土) 01:43:02.15 ID:Y+svLIx5.net] cmdcmdlineを見て全部の引数に引用符を付ければいい話では
471 名前:デフォルトの名無しさん mailto:sage [2021/10/31(日) 00:05:13.37 ID:VJFi2hrE.net] >>464 引用符付引数表示バッチ(D&D,sendto用),拡張子はbat @echo off & set a="%cmdcmdline:"=" "%" for %%i in (%a:*t"=%) do if not %%i=="" set b=%%i& call :x pause & exit :x if "%b:~1,1%"==" " set b=%b: =" "% for %%j in (%b%) do if not %%j=="" echo %%j
472 名前:デフォルトの名無しさん mailto:sage [2021/10/31(日) 15:03:24.36 ID:6z99IB+f.net] 自分も結局cmdcmdline読んで置換して置換して 最後のファイルパス部分だけ""で囲みなおすとかいう技で何とかした。 けど空白&付ファイルを管理者権限オプション付けたショートカットにsendtoしたら ””の付き方の関係でコマンドエラーになってそもそも バッチファイルすら動かせないのはどうしようもなかった。
473 名前:デフォルトの名無しさん mailto:sage [2021/10/31(日) 16:14:17.42 ID:C3Zqy8ME.net] 普通のファイル名に&を使うのがバカ &使うのはトリッキーな動作させる時だけ
474 名前:デフォルトの名無しさん mailto:sage [2021/10/31(日) 16:59:09.50 ID:VJFi2hrE.net] >>466 管理者権限ではダメだね 起動しないのでバッチを弄っても意味がない べつに & が無くても半角空白だけでもダメ pauseだけのバッチでも起動しない
475 名前:デフォルトの名無しさん mailto:sage [2021/11/01(月) 06:54:23.99 ID:jadZUHdf.net] 引数を取得してからショートカットにまわせばいいんじゃね start kanri.lnk 引数
476 名前:デフォルトの名無しさん mailto:sage [2021/11/01(月) 08:07:56.06 ID:jadZUHdf.net] だめやな 引数に"が一個でもあるとこけるわw
477 名前:デフォルトの名無しさん mailto:sage [2021/11/01(月) 08:27:08.38 ID:jadZUHdf.net] 変数もあかんしファイルで渡すしかなさそうやな
478 名前:デフォルトの名無しさん mailto:sage [2021/11/01(月) 12:50:11.96 ID:QjI9xm4a.net] 自分が使うバッチにファイル群なら運用回避で何とでもなるんだけど 会社の共有フォルダとかだとなんて皆使えるように使うしどうしてもな。 まあどうしようも無ければ最後はルール化して 半角全角空白記号周りのファイル名をリネームするツール回すのみだな。
479 名前:デフォルトの名無しさん mailto:sage [2021/11/02(火) 11:39:54.98 ID:cNrRrDlB.net] >>468 ファイル名じゃなくても&付きのURLってたまに処理対象になるし
480 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 10:25:06.03 ID:/m7gndnZ.net] >>466 1.バッチのショートカットを作成 2.「管理者として実行」に設定 3.リンク先の先頭にcmd /c を追加する 適用したらcmdはフルパスに変換される これで動作するはず 管理者権限が不要ならcmd /c も不要 というかバッチに直接D&D,sendtoでもOK
481 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 12:58:10.31 ID:/m7gndnZ.net] >>474 は一般的な話だが >>465 の場合の管理者権限ショートカットは リンク先はバッチファイル名を引用符で囲む必要あり cmd /c c:"\hoge.bat" 最初の引用符の位置に注意 バッチの中で t" を参照してるので消えないようにするため
482 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 20:10:42.41 ID:/m7gndnZ.net] >>474-475 こんな面倒なことする必要ないわ バッチのフルパスに半角スペースがあればいいのか 管理者権限にするだけだな
483 名前:デフォルトの名無しさん mailto:sage [2021/11/03(水) 20:29:31.22 ID:/m7gndnZ.net] フルパスじゃないな バッチファイル名に半角スペースか よくわからん
484 名前:デフォルトの名無しさん mailto:sage [2021/11/06(土) 21:15:51.20 ID:INMdaaG1.net] set j=.body.playback for /f "usebackq" %%a in (`curl %h%^|jq -r %j%.video_link[-1].url`)do set m=%%a for /f "usebackq" %%a in (`curl %h%^|jq -r %j%.title`)do set t=%%a 2回もJSONに参照するのが嫌だから、1回で格納したいんだけどforを1回で回して2つ格納って出来ます?
485 名前:デフォルトの名無しさん mailto:sage [2021/11/07(日) 00:37:39.03 ID:U3IH/L/8.net] >>478 ちょっとjqを調べてみたら、いくつか使える候補が見つかった batで使いやすいのは結果が1行で出力されるもの \(),join(""),@csv for文で、\()とjoinは任意の区切り記号、csvは区切り記号として[,]の3つを指定する また複数行の出力場合は擬似配列変数に代入するとかでできる 【例】 長いので、入力が{"a":{"b":"foo","c":"bar","d":"baz"}}とした場合 (※.a.bは.a|.bでも良い) 1) \() for /f "usebackq tokens=1-2 delims=," %%i in (`curl 〜^|jq -r ".a|""\(.b),\(.d)"""`) do ( set m=%%i set t=%%j ) 2) join("") for /f "usebackq tokens=1-2 delims=," %%i in (`curl 〜^|jq -r "[.a.b,.a.d]|join("""","""")"`) do ( 3) ,での出力 setlocal EnableDelayedExpansion set n=0 for /f "usebackq tokens=*" %%i in (`curl〜^|jq -r ".a.b,.a.d"`) do ( set d!n!=%%i set /a n+=1 ) echo;%d0% echo;%d1% endlocal
486 名前:デフォルトの名無しさん mailto:sage [2021/11/07(日) 01:01:53.46 ID:U3IH/L/8.net] 4) @csv for /f "usebackq tokens=1-2 delims=," %%i in (`type test.json^|jq -r ".a|[.b,.d]|@csv"`) do ( set m=%%~i set t=%%~j ) あ、-cというのも見つけた 5) -cで配列を出力 for /f "usebackq tokens=1-2 delims=[,]" %%i in (`type test.json^|jq -c ".a|[.b,.d]"`) do ( set m=%%~i set t=%%~j )
487 名前:デフォルトの名無しさん mailto:sage [2021/11/07(日) 01:58:35.64 ID:DID0sM5T.net] for /f "tokens=1-2 delims=," %%a in ('curl %h%^|jq %j%.video_link[-1].url,%j%.title') do set "m=%%~a"&set t=%%~b みたいな感じで jqの方よく分かって無いけど、カンマ区切りで両方の要素フィルタリングしてforでトークンとカンマをデリミタ指定してやれば行けそう だけど要素にカンマが含まれてたら失敗するかも 次案 for /f "delims=" %%a in ('curl %h%') do ( for /f "usebackq" %%b in (`echo %%a^|jq -r %j%.video_link[-1].url`)do set m=%%b for /f "usebackq" %%c in (`echo %%a^|jq -r %j%.title`)do set t=%%c )
488 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 16:25:54.29 ID:Px/K8tF9.net] moveで移動するときに 指定したフォルダがないときに自動で作るとかできんの?
489 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 17:08:44.21 ID:Wv1BXJs6.net] 存在しないとリネーム 存在するとその下に移動 結果が全く違う エラーも出ない 確認もない たちの悪い仕様
490 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 21:36:39.36 ID:Ev0WzRyD.net] >>479-481 ううーむ、どっちもダメだった うまい方法は無いかー
491 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 22:36:27.76 ID:z+jTzavH.net] >>484 どういうふうにダメなの カンマが文字列に入ってたのなら区切り文字列を別の使われてないものにすればいけると思うけど また3)でもいけるはずだが
492 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 22:40:00.92 ID:z+jTzavH.net] ただ、常にダブルクォーテションで括ってやって、外さないように制御したほうがいいよ urlによく付いてくるクエリーとかだとパラメータを&で区切って書くので ""を外すと何かとやりにくいはず
493 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 22:55:02.48 ID:hhTd8ytG.net] うまいも何も恐らくjqコマンドの書き方の問題でしょ
494 名前:デフォルトの名無しさん mailto:sage [2021/11/08(月) 22:59:09.33 ID:Ev0WzRyD.net] すまぬ、「またまたー」と思いながらやり直したら普通に動きましたw 一応、>>479-480 の例1と5で試したらしっかり動きましたw
495 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 00:35:07.87 ID:QL8KoTXD.net] >>488 5)は区切り文字が3つもあって、どれかがurlのクエリーに使われるかもしれない またtokens=1-2はtokens=1*にすれば2つ目(.title)にはカンマがあっても大丈夫になる で、一番いいと思うものが区切り文字としてTABを使うもの (まず、urlやtitleにTABコードは使わないだろう) 6) @tsv for /f "delims=N" %%I in ('cmd /u /c echo 三') do set TAB=%%I for /f "usebackq tokens=1* delims=%TAB%" %%i in (`type test.json^|jq -r ".a|[.b,.d]|@tsv"`) do ( set x="%%i" set y="%%j" )
496 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 19:41:28.06 ID:5mYjFh+F.net] バッチファイルでコマンドプロンプトを起動して C:\>hoge というふうに「hoge」が入力された状態にしたいんですけどどうすればいいでしょうか cmd /k の後がわかりません・・
497 名前:デフォルトの名無しさん mailto:sage [2021/11/09(火) 20:43:47.12 ID:pDzmJqw9.net] @cmd.exe /k "prompt C:\$Ghoge" 「入力された状態」はahkとか使わないと無理じゃないかな
498 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 01:27:11.48 ID:f
] [ここ壊れてます]
499 名前:aifycsG.net mailto: 定型入力を省略したいってだけなら別の方法があるけど rem hogeの後に続く文字列を入力させる set /p REMAIN_STR="hoge" rem hogeと結合する set COMPLETE_STR=hoge%REMAIN_STR% rem 完全な文字列を表示する echo %COMPLETE_STR% [] [ここ壊れてます]
500 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 02:45:03.95 ID:lbp+J88v.net] hoge はコマンドで、途中まで入力された状態にしたいとく汲み取れるんだが
501 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 02:56:31.36 ID:eLi1lwzp.net] コマンドの入力が面倒ってだけなら doskeyで適当なエイリアスを設定するだけでも十分な気が
502 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 07:20:19.97 ID:v4FfRZjw.net] あるデバイスが抜いてさし直さないと読み込めません コマンドプロンプトで刺してある状態を解除して読み込め直すことは出来ないですか?
503 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 07:40:32.85 ID:ZzX9Joeo.net] devconでできない?
504 名前:デフォルトの名無しさん [2021/11/20(土) 17:53:21.19 ID:KiGzNUkt.net] 質問です。 やりたいことは 「エクスプローラーで選択したフォルダをショートカットキーを使って指定したフォルダに移動」 です。 BATファイルがショートカットキーで使えるようなので これをなんとか使えないか調べたのですがわかりませんでした。 私のやりたいことは可能でしょうか?
505 名前:デフォルトの名無しさん [2021/11/20(土) 21:04:55.50 ID:mzO+cRkE.net] >>497 >BATファイルがショートカットキーで使えるようなので そこの情報源に当たればいいじゃん
506 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 23:01:39.27 ID:785tmrzC.net] バッチ(コマンド)だけでは無理 VBか何かで「エクスプローラーで選択」のアイテムのパスを取得出来れば可能 この辺で聞いてみたら? VB.NET質問スレ(Part44) mevius.2ch.net/test/read.cgi/tech/1527325729/ 【VBScript】WSHについて話し合うスレ【JScript】 mevius.2ch.net/test/read.cgi/tech/1578522041/ 素直に選択して右クリで「送る」するならバッチでも出来る、がCtrl+X,Ctrl+Vと手間は大して変わらん どうしてもショートカットキーワンアクションでってならエクスプローラー諦めてそれが出来そうなファイラー探す方が早い
507 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 14:03:31.46 ID:/SaMuAE1.net] OSに現在誰がログインしてるかSYSTEM権限のタスクのバッチから取得したいと考えてます。 ログイン中のユーザー自体はquery userコマンドで拾えることが判ったのですが、 他にもっと適当なコマンドがあったら教えてください。
508 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 14:26:02.18 ID:/CZTlOFO.net] ナメすぎやろおまえ 知恵袋にでも逝けks
509 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 16:35:41.72 ID:/hna8FyN.net] %USERNAME% ではだめなのか
510 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 16:48:36.14 ID:h4R7LYQM.net] usernameってローカルログオンしてるユーザーだけじゃななかったっけな? system権限のbatっていうのが何なのか曖昧だけど アカウントユーザー名のSYSTEMのことだったらダメなんじゃないか?
511 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 16:54:31.46 ID:h4R7LYQM.net] あと結果をecho表示させようとしてもSYSTEMからユーザーの画面に表示はされないので注意(ウィンドウが表示されない)
512 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 16:57:22.70 ID:h4R7LYQM.net] 念のためechoだけじゃなくNotepad等アプリ起動してもユーザー画面には現れないということ
513 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 17:20:15.98 ID:h4R7LYQM.net] スタンドアローンPC(普通の人の環境)で試してみた %username% → PC名$ query user → 誰かがログインしてれば、ログインしてるローカルユーザー1人のみ サーバーだとおそらくユーザー全員のリストが出るのかな?
514 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 20:59:58.20 ID:q48e3mil.net] query userの何が気に入らないのかを教えてくれないと
515 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 11:48:10.21 ID:HBTqNirT.net] >>506 普通の人の環境ではそもそも query コマンド自体が無かったりするが…
516 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 19:01:18.96 ID:YF/SUs6n.net] whoamiコマンドの結果では、systemが表示される ダメってことだが一応報告まで
517 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 19:11:59.58 ID:YF/SUs6n.net] さらにset userだとコンピュータ名になる
518 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 08:52:09.04 ID:v39GCTAR.net] net session >nul 2>nul && goto super_user
519 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 18:33:43.80 ID:tf0m1Q47.net] Driver Booster というアプリがあります。これを (バージョンに関わらず) バッチファイルから起動したいと思います。 このアプリは C:\Program Files (x86)\IObit\Driver Booster\(バージョン番号)\DriverBooster.exe が実行ファイルです。 この (バージョン番号) 部分によらず起動するために、実行ファイル DriverBooster.exe を検索して起動しようと 以下バッチファイルを書いてみましたが、肝心のファイル検索がうまく行きません。どうしたらよいでしょうか cd /d "C:\Program Files (x86)\IObit\Driver Booster" for /f "delims=: tokens=1" %%i in ('where /r "C:\Program Files (x86)\IObit\Driver Booster" DriverBooster.exe') do set p=%%i echo %p% <-- いずれ start "" /b "%p%" にする予定 pause
520 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 19:09:58.73 ID:/gWgBLyu.net] pushd "C:\Program Files (x86)\IObit\Driver Booster" set p= for /f "delims=" %%a in ('dir /b /s DriverBooster.exe 2^>nul') do set "p=%%~a" if defined p (echo start "" /b "%p%" ) else ( echo File Not found. pause
521 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 19:15:36.21 ID:/gWgBLyu.net] > ) else ( echo File Not found. ) else ( echo File Not found.) 閉じ括弧忘れ訂正
522 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 19:37:34.23 ID:tf0m1Q47.net] できました! 大感謝です!
523 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 22:15:56.97 ID:QElBq1+g.net] for /r "C:\Program Files (x86)\IObit\Driver Booster" %%a in (DriverBooster.exe*) do start "" /b "%%~a"
524 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 23:38:49.10 ID:7Kq301Hb.net] そういや 音って鳴らせないの? 特定の処理を終了したら 終了音ならしたいんだけど
525 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 00:22:26.48 ID:GYI09rKg.net] @echo off for /f "delims=N" %%i in ('cmd/u/c echo 万') do set bel=%%i echo %bel% pause
526 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 02:02:20.45 ID:L2nveBoL.net] powershell -c (New-Object Media.SoundPlayer 'C:\WINDOWS\Media\Windows Logon.wav').playSync();
527 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 04:56:50.03 ID:GYI09rKg.net] prompt $g^G ^G はIMEオンで 0007 + F5キー
528 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 09:12:16.85 ID:rRXxy3T6.net] beep
529 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 13:17:12.74 ID:xQvD3wWY.net] "C::\Windows\Media\tada.wav"
530 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 13:18:06.25 ID:xQvD3wWY.net] typo "C:\Windows\Media\tada.wav"
531 名前:デフォルトの名無しさん [2021/11/24(水) 15:01:27.44 ID:uH6oNI9g.net] すみません、質問です。 call :hoge hogehoge.py :hoge python -B %1 robocopy foge del piyo exit /b は、 hogehoge.pyに:hoge を追加したものを実行しているという意味合いで合っていますでしょうか。 お手数おかけして恐縮ですが、教えていただければ幸いです。
532 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 15:29:52.68 ID:L2nveBoL.net] call は ":hoge" というサブルーチンを "hogehoge.py" を引数として呼んでいる サブルーチン":hoge "は :hoge から exit /b まで 「python -B %1」の%1は :hoge の第1引数、つまり "hogehoge.py" ":hoge"サブルーチン内で 「 python -B hogehoge.py 」と実行している バッチ内に @echo off とあるのなら、@echo on と書き換えて実行すれば コマンド類がどういう順、変数展開されて実行されているか見えるようになる
533 名前:デフォルトの名無しさん [2021/11/24(水) 15:51:35.42 ID:uH6oNI9g.net] >>525 ご教授いただきありがとうございます。 とてもわかりやすく、助かりました!
534 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 16:06:45.19 ID:xEc1Gd+0.net] call hoge hoge.batを呼び出す call hoge.batと書いたほうが間違いが少ない call :hoge 現在のbatファイル中のラベル:hogeを呼び出す (サブルーチンのような感じであり、呼び出すbatファイルを別に用意しなくても済む)
535 名前:デフォルトの名無しさん mailto:sage [2021/11/28(日) 21:32:31.71 ID:/OsOh/FW.net] explorerから.batをクリックした時 Windows Terminalで開く設定ってどうやるの? ショートカット作ってプロパティ設定すると 非レガシーコンソールの設定もあるけどウィンドウが透明になって^vできるだけという
536 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 14:11:09.39 ID:lBCR2YeY.net] ショートカットを以下みたいにして出来ない? wt new-tab --title "CMD" cmd.exe /k \"フルパス\hoge.bat\"
537 名前:デフォルトの名無しさん [2021/12/01(水) 12:20:54.06 ID:+U/ofie/.net] 日付の計算ってvbsやパワーシェル呼び出すしかないの? ファイル名yyyymmの今月分がなかったら先月分をリネームコピーしたいだけなんだが
538 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 12:52:49.40 ID:jrr/ct9i.net] SETLOCAL ENABLEDELAYEDEXPANSION SET TODAY=%DATE% SET YY=%TODAY:~0,4% SET MM=%TODAY:~5,2% IF "%MM%"=="01" ( SET /A YY=%YY%-1 SET LASTMM=!YY!12 ) ELSE ( SET /A MM=%MM%-1 SET MM=0!MM! SET LASTMM=%YY%!MM:~-2! ) ECHO %LASTMM%
539 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 13:11:55.23 ID:eX2WGo0j.net] > 今月分がなかったら先月分をリネームコピーしたいだけ これにどう日付計算が必要なの?そもそも日付計算くらい自前で計算出来るでしょ 今月が1月の時だけ前年の12月にするくらいだね。ifで判別すればいいだけだから計算は1月の時に"年-1"するだけ 今月の取得 set Y=%date:~0,4% set M=%date:~5,2% Mは頭ゼロになる 12パターンしか無いんだから if "%M%"=="01" から "%M%"=="12" までずらっと並べちまえばいい バッチなんて頭悪い書き方(の方が|で)いいんだよ タスクスケジューラで定期実行させるのか都度月1でダブルクリックか 先月のファイルが無い場合は?遡って順次処理?ファイル名形式に合う最後のファイルを今月に? 日付計算が必要で数値としての今月はこんな感じで取得出来る for /f "tokens=1-3 delims=/" %%a in ("%date:~0,10%") do set /a "y=%%a, m=1%%b-100, d=1%%c-100" UNIXTIMEもワンライナーで行ける for /f "tokens=1-7 delims=/:. " %%a in ("%date:~0,10% %time: =0%") do set /a "y=%%a, m=1%%b-100, d=1%%c-100, h=1%%d-100, n=1%%e-100, s=1%%f-100, cs=1%%g, f=!(m/3), g=y-f, k=f*12+m-3, uTime=86400*(365*g+g/4-g/100+g/400+(306*k+4)/10+d-719469)+3600*h+60*n+s"
540 名前:デフォルトの名無しさん [2021/12/01(水) 13:16:52.77 ID:+U/ofie/.net] >>531 >>532 ありがとう 確かにバッチに時間かけるのもあれだな
541 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 13:53:25.27 ID:eX2WGo0j.net] 先月 for /f "tokens=1-2 delims=/" %%a in ("%date:~0,7%") do set /a "m=1%%b-101, f=!m, y=%%a-f, m=m*!f+12*f" set m=0%m% set m=%m:~-2% echo %y%%m%
542 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 14:32:14.49 ID:eX2WGo0j.net] set /a "m=101-101, f=!m, y=2022-f, m=m+12*f" でいい *!fはあっても問題無いけど余計だった
543 名前:デフォルトの名無しさん [2021/12/01(水) 14:33:15.12 ID:+U/ofie/.net] かなりシンプルになるな
544 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 14:33:29.91 ID:eX2WGo0j.net] 訂正 set /a "m=1%%b-101, f=!m, y=%%a-f, m=m+12*f"
545 名前:デフォルトの名無しさん mailto:sage [2021/12/01(水) 19:30:16.15 ID:qmJDO3Rn.net] for /f "tokens=1-7 delims=/:." %%1 in ("%date%.%time: =0%") do set DateTime=%%1%%2%%3%%4%%5%%6%%7
546 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 12:24:38.70 ID:xcTRUvQf.net] for /f "tokens=1-2 delims=/" %%a in ("%DATE:~0,7%") do set /a "m=1%%b-101, f=!m, m+=12*f, y=%%a-f" for /f "tokens=1-2 delims=/" %%a in ("%DATE:~0,7%") do set /a "m=1%%b-101, m+=12*(f=!m), y=%%a-f" for /f "tokens=1-2 delims=/" %%a in ("%DATE:~0,7%") do set /a "m+=12*(f=!(m=1%%b-101)), y=%%a-f" 少し直したけど綺麗だなこれ >>532 unixtimeも面白い 3月を頭にしてるんだな
547 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 21:10:02.03 ID:NUCi8UEu.net] 0:00前後に実行するとおかしなことになるから%date%と%time%はかならず一時変数に入れるべき もっと言えば日付と時刻を同時に取れる手段を使うべき
548 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 22:16:15.49 ID:sGas3Vn9.net] メモ フェアフィールドの公式
549 名前:デフォルトの名無しさん mailto:sage [2021/12/02(木) 22:37:42.24 ID:s/MRATw/.net] 割とクソゴミな式な 式の意味が分かり難くなるような式変形しちゃダメだわ 敢えてやってんだろうけどさ Wikipediaの解説とかも良く分かってないバカが書いたんだろうなと思う まあ導出のアプローチの仕方が悪いってだけだが
550 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 22:30:00.94 ID:Nf0n5MKs.net] 日付の質問です。 CSVの日付部分のセルのデータが壊れていて、5桁の整数になっています。 ググって調べてみたら、どうも1899/12/30が0のシリアル値のようです。 これをYYYY/MM/DDの文字列に変換したいんですが計算式がわかりません。 よろしくお願いします。
551 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 23:24:36.10 ID:vRpkCUu9.net] >>543 CDate( )
552 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 00:20:38.02 ID:KxbO9WQf.net] >>543 エクセルあればセルの表示設定を変える
553 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 06:43:24.27 ID:KxbO9WQf.net] >>543 変数 n を変換 set /a n+=693899,a=365,b=1461,c=36524,e=146097 set /a f=n/e,g=(n+1)/e-f,n-=f,n+=(n-g)/c,f=n/b,g=(n+1)/b-f,n-=f set /a n+=(n-g)/a*3+(n-61)/a+(n-122)/a+(n-214)/a+(n-275)/a-306 set /a y=n/372+1,m=n/31%%12+101,d=n%%31+101 set n=%y%/%m:~1%/%d:~1% 各定数は順に、 0/3/1〜1899/12/29の日数(全てグレゴリオ暦) 西暦1年から1,4,100,400年の日数 3〜4,3〜6,3〜9,3〜11,3〜12月の日数 31*12の日数
554 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 09:15:29.34 ID:/JnG12pN.net] > 1899/12/30が0のシリアル値 まあ実質的にはそれでも間違いでは無いけど エクセルは一応 1900/01/01 が 1 でも 1900/02/29 が存在するバグ仕様のせいで 1900/03/01 以降 +1 になってしまい 1899/12/31 が 1 のような値になってしまう 1900/03/01 以降の値しか無いなら一律で構わないけれど全てに対応させるには以下の3種必要 ・1900/01/01 〜 1900/02/28 ・1900/02/29 ・1900/03/01 〜 2/29だけ例外で扱って残りは03/01〜の時、通日をフラグで-1する感じかな 0/3/1 を 0 とした値に直して %1 に与えたら以下の式で年月日を出せる set /a "R=(R4=(R1oo=(R4oo=%~1%%146097)%%36524)%%1461)%%365, Y4oo=%~1/146097, Y1oo=R4oo/36524, Y4=R1oo/1461, Y1=R4/365, L=(Y1oo|Y1)/4, R+=L*365, k=(R*5+2)/153, d=R+1-(306*k+4)/10, f=k/10, m=k+3-f*12, y=400*Y4oo+100*Y1oo+4*Y4+Y1-L+f" echo %y% / %m% / %d%
555 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 09:29:31.66 ID:KxbO9WQf.net] シリアル値が60以下がどうとかいう話だよね 質問が5桁の整数とあるので無視したよ
556 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 10:57:38.65 ID:rW6bYpGZ.net] もしかしてみずほの案件やってた人?
557 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 11:31:10.50 ID:KxbO9WQf.net] そもそも60以下になるとソフトにより挙動が違う Excelとは限らない 出どころ確認が先決 スレチの話だけどね
558 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 11:31:33.19 ID:4iCsIwjm.net] ワロwww
559 名前:デフォルトの名無しさん mailto:sage [2021/12/05(日) 11:39:17.80 ID:4iCsIwjm.net] わざわざ対応する必要なんて無いとは思うけど 定数の説明なんかよりも60以下で不正な値になるという注意書きの方が重要だわな みずほも言われたことしかやらない企業体質がどうの言われてるね こんな感じで小さなバグが内包しまくってるのかもなw
560 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 16:06:42.92 ID:yBc7foB1.net] >>546 一旦閏日全部引いて、月が一律31日になるよう加算してるんだね 面白い (n-61)/a+(n-122)/a+(n-214)/a+(n-275)/a この式が4-11月の不足分を足してるんだろうけど なんでこの式で行けるのかイメージ出来ない
561 名前:デフォルトの名無しさん mailto:sage [2021/12/06(月) 19:19:45.42 ID:+EfoGYZX.net] >>546 バッチありがとうございます。動作確認しました。助かりました。 >>550 ソフトはLibreOfficeです。後出しですみません。 シリアル値は全て連続です。質問は5桁設定でしたが60以下でもOKです。 >>547 詳細な情報ありがとうございます。Excelの場合は注意します。
562 名前:デフォルトの名無しさん [2021/12/07(火) 18:18:33.97 ID:gm0ARZfd.net] すみません、質問です。 SET hoge=hogehoge robocopy c:\piyo \\server1\foge %hoge% /r:3 & if errorlevel 8 ( echoコマンド exit /b 1 ) 上記、 robocopy c:\piyo \\server1\foge %hoge%の「%hoge%」はどのような意味合いになりますでしょうか。 また、/r:3 & if errorlevel 8 ( の意味合いも教えていただけないでしょうか。 恐縮ですが、よろしくお願いいたします。
563 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:50:14.46 ID:eGbAaLSQ.net] robocopy /? でヘルプが出るのでそれを読め
564 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 18:52:54.40 ID:eGbAaLSQ.net] なお&は命令の区切りだけど、別に手前の命令の結果を待っての動作じゃなくて 一行前までの結果で動作するんじゃなかったかな
565 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:03:57.81 ID:8LJtCh3/.net] &はコマンドを繋げているだけ その例だと robocopy opt if errorlevel 8 echoコマンド&exit /b 1 と同じ c:\piyo \\server1\foge %hoge% /r:3 がrobocopyのコマンドラインオプション %hoge%はhogehoge set a=xyz echo %a% はecho xyzと解釈されxyzと出力される 各コマンドについてはコマンドプロンプトで以下 set /? robocopy /? if /?
566 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:21:14.44 ID:eGbAaLSQ.net] >>558 >>557 でも言ったけど、&は命令を並列に記述できるだけで 前の命令の結果を反映したものじゃないので robocopy opt if errorlevel 8 echoコマンド&exit /b 1 と robocopy opt&if errorlevel 8 echoコマンド&exit /b 1 の結果は違ってくる っていうかこれは意味の無い間違った使い方だね 例 set data=abc set data=def&echo %data% echo %data% 実行結果 abc def
567 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:26:26.54 ID:eGbAaLSQ.net] あれ違うのか コマンドの場合は結果を見るんだな 環境変数が遅延するのか
568 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:34:45.64 ID:8LJtCh3/.net] >>559 pushd . if errorlevel 1 echo fail1 pushd a if errorlevel 1 echo fail2 pushd .&if errorlevel 1 echo fail3 pushd a&if errorlevel 1 echo fail4 pause 試してから発言しなよ
569 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 19:38:07.87 ID:eGbAaLSQ.net] 実行時の行の展開の式評価に環境変数は展開されるってことだな 式評価に影響されないものはちゃんと実行される &による命令の結合は if errorlevel 1 は問題ないが if %errorlevel% geq 1は問題がでてくる
570 名前:デフォルトの名無しさん [2021/12/07(火) 20:35:38.31 ID:FGGdMnHs.net] 皆さまありがとうございます cmdにて コマンド /? で見られること知りませんでした
571 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 06:22:16.06 ID:GPDURn2W.net] 変数・条件判断など、ややこしいのは、PowerShell で作った方がよい
572 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 20:11:32.12 ID:g8C6QNB9.net] 普通に「勘違いしてました。ごめんなさい。」と言えんのか
573 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 20:18:14.77 ID:CqDUxZrm.net] if errorlevel とか if defined って & で繋ぐ為にあるんじゃね?
574 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 21:48:59.30 ID:QG3j0cZG.net] バッチは罠が多すぎて&なんて横着しないからどうでもいい
575 名前:デフォルトの名無しさん mailto:sage [2021/12/08(水) 22:49:45.89 ID:CqDUxZrm.net] 他にもifやdoの括弧のなかとか
576 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 10:08:38.60 ID:FBbu4srV.net] 次行に書いた方が見やすいしわざわざ&で繋ぐ意味なんてほぼ無いけど robocopy & if errorlevel としてるのは if errorlevel は直前のコマンドの errorlevel を評価するわけだから 「ココは直後である事に意味ありますよ。繋がっていますよ」をコード的に明示する為に次行では無く&で繋げて書いてあるんだと思う
577 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 13:59:42.09 ID:3uIKfwyJ.net] &で繋ぐのは大抵そんな感じ
578 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 14:06:23.73 ID:7XWC/XYC.net] 行数を少なくしたい時しか使わんかなあ まあ使うとしても エラーかどうかだけチェックするときは、&&,||を使うといい
579 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 15:08:39.73 ID:CZcGE7T9.net] >>571 > エラーかどうかだけチェックするときは、&&,||を使うといい なるほど、一行でみやすくなる
580 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 15:58:31.58 ID:y36UsJ/D.net] type "!TARGET_FILE!">>"!FILE_NAME!"で テキストの中身を出力して テキストファイルに出力するバッチファイルつくったんですけど 普段はうまく出力できたんですが 特定のファイルだけ The system cannot find the file specified. で中身が空になってしまいました 原因として考えられるのはなんでしょうか?
581 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 15:59:20.44 ID:y36UsJ/D.net] 中身が空というのは 本来は出力されるべきものが空になって出力された ということです わかりづらくてすいません
582 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 16:09:53.85 ID:y36UsJ/D.net] 自己解決です ファイル名がおかしかったでした すいません
583 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 09:23:54.32 ID:E/xxr9cU.net] Windows10で、Chromeで特定の複数Webページを開くバッチファイルを作りたいと思ってます cd /d "PATH_TO_CHROME" "PATH_TO_CHROME\chrome.exe" "http://〇〇/〇〇" "PATH_TO_CHROME\chrome.exe" "http://△△/△△" ↑ このようにすると指定したChromeが起動し、指定したURLを開けるところまでは できたのですが、これだと起動したChromeのタブを閉じないとバッチファイルが 先まないので、1サイトずつ開くことしかできません しかし cd /d "PATH_TO_CHROME" start "PATH_TO_CHROME\chrome.exe" "http://〇〇/〇〇" start "PATH_TO_CHROME\chrome.exe" "http://△△/△△" ↑ このようにすると、ChromeではなくIE(既定のブラウザ)で起動してしまいます 対処法をお教えいただけますでしょうか
584 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 09:32:06.00 ID:UVPMSOn+.net] srart /? 読めよ 定番の罠だぞ start "タイトル" "コマンド"
585 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 09:43:17.11 ID:B96qroJw.net] 実行前にcdしてるんだから、startでPATH_TO_CHROME必要なくない?
586 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 09:55:28.09 ID:E/xxr9cU.net] >>577 ご指摘ありがとうございます コマンドがタイトルとなっているようですね >>578 うまくいかず、いろいろ試行錯誤して残っておりますが、たしかに必要ないですね ご指摘ありがとうございます
587 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 11:16:20.09 ID:E/xxr9cU.net] 576です いただいた回答に基づき以下の様に修正し、うまく動作しました ありがとうございました cd /d "PATH_TO_CHROME" start "" chrome.exe "http://〇〇/〇〇" start "" chrome.exe "http://△△/△△" タイトルは、どうしようか迷いましたが、消すとまた忘れて罠にハマるかと思い、 残しておきました
588 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 12:54:10.13 ID:4x3UzFuB.net] chromeをdefault browserにする気は無かったのか?
589 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 13:46:43.89 ID:xm+AV3Ci.net] これかー https://github.com/MicrosoftDocs/windowsserverdocs/issues/4784 However the fact you need a Window Name is very annoying. Typically we have used: start /w "c:\path_name_here\filename.ext" But all this does now is open another cmd prompt window with "c:\path_name_here\filename.ext" as it's title. As a minimum, what is now required is this: start "" /w "c:\path_name_here\filename.ext" Why did this change?? まだopen question?闇深
590 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 13:58:58.96 ID:bi0x6bK+.net] いちいちcdとかせんでもこれでよくね? set chrome="フルパス\chrome.exe" start "" %chrome% "http://〇〇/〇〇" "http://△△/△△" タブに追加するだけならurlは羅列でいいはず
591 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 14:41:04.55 ID:xm+AV3Ci.net] /オプション無しのオプショナル引数を先頭に持ってくるという設計は完全に腐ってるから、[<title>]から<title>への変更はグッジョブ しかしアンドキュメンテッドはやめーや
592 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 10:32:27.87 ID:iAh3rPLr.net] cmdの作業効率が8%向上する裏技 prompt $E[92;40m$P$_$G$S$E[0m
593 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 14:12:22.20 ID:MDj1w4qb.net] ドキュメントしてしまうと公認してしまうから
594 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 01:14:44.64 ID:74yCYCRP.net] >>567 行毎に一括でパラメタ展開はモジュール化に役立つよ :: main call :subtract %1 %2 call :add %1 %2 goto:eof :subtract setlocal set a=%1 set b=%1 endlocal & set /a ret=%a%+%b% exit /b :: note that :: "endlocal & set /a ret=a-b" wont work: no expansion at line-parsing :: also :: "endlocal" :: "set /a a=%a%+%b%" :: because local vars already popped. :add setlocal set a=%1 set b=%2 endlocal & set /a ret=%a%-%b% exit /b ノーテストなんでなんか変だったらごめん スマホアプリですぐ試せられればいいんだけど、プロプライエタリだからなあ…
595 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 01:20:33.98 ID:74yCYCRP.net] 大事なとこぬけてた call :subr arg1 arg2 @echo %ret% みたいに返り値得てます
596 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 13:12:42.88 ID:0TpC/TXA.net] %time%で取得できる13:11:12.99を13111299に変換したい場合、変数を使って%time::=%、%_time:.=%として変換しています。 この文字列置換を複数条件設定するなど1行でスマートに置換させる方法はありませんか?
597 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 14:26:07.33 ID:g9YcY7nV.net] >>589 >>538 じゃ駄目なの?
598 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 15:16:40.00 ID:0TpC/TXA.net] >>590 できました。ありがとうございます。
599 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 10:47:19.32 ID:EP1qj6y9.net] >>538 すばらしい、一行でできるんだ、曲芸飛行 時間だけで5行かけていた
600 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 21:34:23.51 ID:Ttj+NiJr.net] >>540 の問題で痛い目を見るから俺は%date%%time%は使わない
601 名前:デフォルトの名無しさん mailto:sage [2021/12/15(水) 22:26:24.88 ID:EYSEHsUE.net] >>593 そこまで気にするなら、時刻が 0:00:00.xxの時は日付を取得し直すとかすればいいかな 又は一旦ダミーファイルを作成してそのタイムスタンプを見るとか ちょっと具体的には思いつかないが日付時刻の付いた結果が出るシステム情報や結果ログ出力系のコマンドから貰うとか bat中で別言語(WSH,PowerShell)で取得するとか(new Date();やget-date) どういうのを使うと良いと言ってくれれば最高なレスになったのに
602 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 00:00:44.73 ID:7XMchLit.net] 通ぶりたいだけでしょw
603 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 21:17:59.55 ID:/gSQ5d+p.net] これで満足かな for /f "usebackq" %%a in (`powershell -nop "get-date -format 'yyyyMMddHHmmss'"`) do set now=%%a
604 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 14:42:24.69 ID:BDVQn7Pa.net] :: タイムスタンプ取得。秒未満無し copy nul $.txt :: tokens はシステム設定の日付形式に依存。環境毎に要調整 for /f "tokens=2-4,6-8 delims=/: " %%a in ('where /t $.txt') do set "dt=%%a%%b%%c%%d%%e%%f" del $.txt set "dt=%dt: =0%" echo %dt% pause &exit /b :: 怪しい時間帯(23:59:59-00:00:01)なら再取得。センチ秒(1/100)有り :GET_DT for /f "tokens=1-7 delims=/:." %%a in ("%date:~0,10%/%time: =0%") do set /a "d=%%a%%b%%c, t=1%%d%%e%%f%%g" if %t% GTR 123595900 timeout /t 2 /nobreak >nul &goto :GET_DT if %t% LSS 100000100 goto :GET_DT echo %d%_%t:~1,-2%_%t:~-2% pause &exit /b 別々に取得してるならまだしも同時に取得してそんな事故起こり得るの?都市伝説じゃね? ところで"20211217143411"みたいな年月日時分秒を区切り文字無しの数字のみで表した形式って名前あるなら教えて欲しい
605 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 14:50:54.89 ID:YK+z10uu.net] dateもtimeも参照する度に計算して返してるからありえなくはないはず んなこと気にしだしたらやってらんないからまあ気にすんな
606 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 15:15:49.48 ID:hTLZR6Rv.net] 怪しい時間はスリープしてしまうのも手 決済の日付なんか微妙なの下手に振り分けたら揉めるしな、23:59で〆切でヨシ そんなのbatでやってる人居るかはしらんが
607 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 17:15:52.28 ID:U9ZWMMsm.net] >>597 日時ってデータとしては埋もれて目立たないから軽視されがちだけど バッチでログ吐かせてY軸時間でグラフ出すような時にアッレッ!?ってなる
608 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 19:18:20.51 ID:b/qKwgTk.net] :loop set d=%date% set t=%time% if not %d%==%date% goto loop
609 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 20:24:45.70 ID:HfuHDFo+.net] >>601 これだと、time取得した後で日付が変わる可能性がごくわずか考えられる やっぱり時刻が0秒台かどうかで判定したほうがいいと思う [] [ここ壊れてます]
611 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 20:26:39.18 ID:HfuHDFo+.net] いや別に変わっても大丈夫だな
612 名前:デフォルトの名無しさん mailto:sage [2021/12/17(金) 21:03:18.69 ID:BDVQn7Pa.net] >>601 あー同時に参照することばかり固執してたわ 敢えて順に取得して2度目との比較でTIMEの同日を保証出来るね その方がシンプルで良いな
613 名前:デフォルトの名無しさん mailto:sage [2021/12/18(土) 01:12:16.03 ID:CB++7SQf.net] 8ビットマイコンで16ビットタイマーの値を読むときなんかに使ったっけ もちろんタイマー側にラッチ機能があって、そういう気遣いのいらないものもあったが
614 名前:デフォルトの名無しさん mailto:sage [2021/12/21(火) 06:09:00.92 ID:LxI3AD9t.net] ラッチがいるならつければええやん
615 名前:デフォルトの名無しさん [2021/12/24(金) 11:39:23.31 ID:etjYYPj+.net] イベントログ保存したくて wevtutil epl system xxx.evtx /q:"条件" ↓ wevtutil al xxx.evtx /l:ja でディレクトリ名が無効ですって出るんだが理由わかる?
616 名前:デフォルトの名無しさん [2021/12/24(金) 11:43:38.16 ID:etjYYPj+.net] 自己解決しました 管理者で実行したら行けた
617 名前:デフォルトの名無しさん mailto:sage [2021/12/24(金) 20:51:05.94 ID:wuqNqn+2.net] >>606 タイマーとかのラッチってペリフェラルの補助機能でしょ ソフトでそんなもんないから>>601 なわけで
618 名前:デフォルトの名無しさん mailto:age [2022/01/02(日) 19:41:59.70 ID:llzVm8Ys.net] Windowsでバッチファイルの%1とかに 今クリップボードに入ってるテキストを渡して起動したいけど なんか方法ある?
619 名前:デフォルトの名無しさん mailto:sage [2022/01/02(日) 20:13:43.31 ID:Wx5RR6tp.net] とりあえず何も追加する必要ないので PowerShell がお手軽 例えばクリップボードの内容を tmp.txt に出すならバッチファイルやコマンドプロンプトで >powershell -NoProfile -ExecutionPolicy Unrestricted -Command Get-Clipboard > tmp.txt 先に >chcp 65001 しておくと UTF8 での出力もいけるっぽい
620 名前:デフォルトの名無しさん mailto:sage [2022/01/03(月) 02:27:56.29 ID:/1+Dp4vp.net] for /f "delims=" %%a in ('powershell -c "get-clipboard"') do hoge.bat "%%~a"
621 名前:デフォルトの名無しさん mailto:sage [2022/01/03(月) 07:54:20.63 ID:yGzP40SI.net] >>611-612 powershellの1行呼び出しに-c or -Commandって必要ある? いつもpowershell -nop "コマンド"てやってるわ
622 名前:デフォルトの名無しさん mailto:sage [2022/01/03(月) 09:26:29.55 ID:BdaWP45p.net] 漏れは下のような、Ruby スクリプト内で、powershell コマンドを呼んで、 クリップボード内の文字列を処理している # クリップボード内の複数行文字列の、各行の先頭・末尾から、 # 連続する空白類を除去して、クリップボードに入れる str = `powershell Get-Clipboard` str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換 ary = str.each_line.map( &:strip ) # 連続する空白類を除去する IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す clip.print( ary.join "\n" ) end
623 名前:デフォルトの名無しさん mailto:sage [2022/01/03(月) 10:45:31.38 ID:CWfpiD5B.net] >>613 この場合なら最低限で書くと for /f "delims=" %%a in ('powershell get-clipboard') do で良い
624 名前:デフォルトの名無しさん mailto:sage [2022/01/03(月) 13:18:16.70 ID:0LszXjQc.net] 環境変数名に一部記号も使えることを発見 #で始まれば一時変数、$で始まればバッチ間共通など、少しわかりやすくできる
625 名前:デフォルトの名無しさん [2022/01/04(火) 00:14:37.12 ID:a2P6Hn/H.net] 塩野義製薬が週休3日制導入へ 来年4月、副業も解禁 塩野義製薬が「週休3日」選択可能に 給与は『週休2日の8割』副業や学び直しを支援 【フォーカス】サタケ/週休3日制 通年導入めざし夏季のみ試行中 交代制で水曜を休日に 旅館なのに週休3日!?陣屋・若女将の常識を覆した組織改革 “時代錯誤”から残業ゼロ、週休3日に! 鳥取の不動産会社が レガシー企業からDX先進企業になれたワケ ネクスウェイ、週休4日制・1日3時間勤務選択できる勤務体系を導入 日本初「週休4日制度」で、優秀な人材を採用するしくみとは? ? ナレッジソサエティ久田社長に聞いてみた
626 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 07:53:54.89 ID:JIskJ1L9.net] ファイルのリネームと ファイルの移動 フォルダ自動作成 これだけで普段の作業の手間がほんとうに省ける 逆に何ができると便利だろう
627 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 08:04:00.41 ID:JIskJ1L9.net] 環境変数って 普通の変数とは違うの? バッチファイル特有の言い回し? %1 %i %hoge だっけ?
628 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 13:18:17.45 ID:nDo7QbOD.net] アプリケーションプログラムの環境という意味 例えば一時作業フォルダを TEMP に指定するとアプリが参照して使ってくれる(事がある) dirコマンドのデフォルトオプションはdircmd変数に設定出来る いわゆる環境設定と呼ばれるね そしてバッチファイル内でプログラミング言語の変数としても使える
629 名前:デフォルトの名無しさん mailto:sage [2022/01/06(木) 13:23:22.58 ID:nDo7QbOD.net] ちなみに %1 %%i は環境変数じゃないね shift /? や for /? を読もう 環境変数はsetコマンドでセットして参照は%変数名% set /? を読もう
630 名前:デフォルトの名無しさん mailto:sage [2022/01/20(木) 04:31:27.84 ID:a6a8bxfJ.net] 最低限 for /f "delims=" %a in ('powershell clipboard') do echo %a
631 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:13:49.45 ID:aASmTB60.net] dir /b の結果を explorerの名前順(昇順|降順)にソートする簡単な方法無い? 数字を数値と見做してソート バッチから利用出来るならOK。ps全く分からんけど powershellとかで出来ないかな? カレントディレクトリの dir /b 相当なら dirで無くてもいい for /f "delims=" %%a in ('dir /b ^| numsort.exe') do みたいな感じで外部ソートツール導入でもOK。むしろ理想形 ファイル数は2000未満くらい。万単位とか考慮しなくていい なるべくなら余計なインストールは避けたいけど自前でパースとソート作るのはハードル高過ぎなので何か方法があれば教えて欲しい 最悪逆順にするだけなら自前でも出来そうなのでせめて(昇順|降順)どちらかだけでも出来れば
632 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:22:10.78 ID:s4YEdFZn.net] >>623 dir /b の結果とexplorerの名前順(昇順|降順)って違うん? もし同じなら、単に dir /b > uuu.txt でリダイレクト
633 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:28:36.67 ID:OaU1XWUD.net] 半角数字だけでいいなら GnuWin の sort.exe を gsort.exe にリネームして使ってる gnuwin32.sourceforge.net/packages/coreutils.htm の Binaries の zip に入ってるやつ >dir /b *.txt | gsort -n 11.txt 0123.txt 2222.txt 3333.txt 11111.txt >dir /b *.txt 0123.txt 11.txt 11111.txt 2222.txt 3333.txt こんな具合 漢数字とかは知らないので日本語(漢数字・全角)に対応したの あれば知りたい……
634 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:53:08.80 ID:aASmTB60.net] >>625 ありがとう試してみます
635 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:59:16.95 ID:s4YEdFZn.net] >>626 あんた数字を数値と見做すて言うたやん? 11.txt 11111.txt 2222.txt になっていいわけ?
636 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:26:05.82 ID:aASmTB60.net] >>625 教えてもらったようにgsort.exeにリネームして使ってみたら libintl3.dll が見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。 とアラート出て使えなかった。win10 libintl3.dllをググったらjp.dll-files.comてとこ検索出て落とせるようなんだけどこれ入れて大丈夫?
637 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:30:15.41 ID:OaU1XWUD.net] >>627 落ち着いて そこは比較のために出した素の 「dir /b 」 の結果ですよ >>628 ごめんなさい 上のページの Binaries の下の Dependencies も要るんだった
638 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 23:14:16.23 ID:aASmTB60.net] >>629 ありがとう libをシステムにコピーして使えました でもコレ dir /b *.ext | gsort -n 1.txt 2.txt … 9.txt 10.txt と、数字.ext なら数値順にソート出来ましたけど 文字列+数字.ext だと無理なようです xxx1.txt xxx10.txt xxx2.txt xxx20.txt みたいになります xxx_1.txt と文字列と数字の間に区切り記号入れても駄目 エクスプローラーのようには並ばないみたいですね win32api使うかvbかpowershellかで出来るような事を以前どこかで読んだ気がするのですがそのソースが見付けられない。。
639 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 01:07:47.03 ID:td9ayUMw.net] 普通に見つかったけど、本当に探した? @echo off echo class P{[System.Runtime.InteropServices.DllImport("shlwapi.dll", >SortLogical.cs echo CharSet = System.Runtime.InteropServices.CharSet.Unicode, ExactSpelling = true)] >>SortLogical.cs echo public static extern int StrCmpLogicalW(string str1, string str2); >>SortLogical.cs echo static void Main(){ string[] lines = System.Console.In.ReadToEnd().Split >>SortLogical.cs echo (new string[] { "\r\n" }, System.StringSplitOptions.RemoveEmptyEntries); >>SortLogical.cs echo System.Array.Sort(lines, StrCmpLogicalW); >>SortLogical.cs echo System.Console.Out.WriteLine(string.Join("\r\n",lines));}} >>SortLogical.cs for /f %%i in ('dir /s /b "%windir%\Microsoft.NET\csc.exe"') do set csc="%%i" %csc% /nologo SortLogical.cs dir /b | SortLogical
640 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 04:18:02.04 ID:aOgfZBdB.net] >>631 すげぇ。生成されたexeで希望するソートが出来るようになりました マジ感謝です ありがとう > 本当に探した? 検索語すら分からず「バッチ dir エクスプローラー並び順」とか他にも結構色々試して探しては見たのですが。。 StrCmpLogicalW が分かった今でもその方法を見付けられていません
641 名前:デフォルトの名無しさん mailto:age [2022/01/26(水) 06:51:01.88 ID:fC9okRVc.net] エクスプローラーの並び順って 辞書順か数字順か レジストリで変更可能だよね
642 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 08:10:19.47 ID:JawhZMcA.net] 何のために並び順を揃えるの?
643 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 08:34:25.15 ID:e2k0MxNT.net] なるほど、数字の部分だけは数値に変換してから、小さい順に並べるのか このアルゴリズムを考えるのは、難しい
644 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 09:10:13.24 ID:TX0OTodc.net] 俺なら必要な桁分0パディングするなあ 連番ファイルをエクスプローラーで直接使うなんてことはないし
645 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 09:20:50.79 ID:JawhZMcA.net] エクスプローラーで選択してパスのコピーでいいやん
646 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 11:52:52.47 ID:+BcwC06P.net] >>635 スクリプトでやるなら正規表現などで数字部分を置換11→0000000011してからソートかな? 小数点以下ってどうなってたっけ? でも記号 _ の並びまで違うから鬱陶しい 631のAPIはWin7には無いっぽいから需要はあるかもよ
647 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 12:06:15.68 ID:+BcwC06P.net] あれ?XPから使えるのか… あの外人許さん
648 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 12:08:29.20 ID:JawhZMcA.net] A01BとA001Bが同じ評価になって順番どうするのとか思う
649 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 20:44:37.41 ID:rJwWcbPl.net] >>631 をスイッチで逆順に出来ない?
650 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 22:43:54.21 ID:2NoDFTFY.net] >>631 おおーっ、いいなコレ >>630 今更感が強いけど、文字列やセパレータがはっきりしてるならこんな事も >dir /b *.txt | gsort -g --key=4 --field-separator=x xxx11.txt xxx0123.txt xxx2222.txt xxx3333.txt xxx11111.txt >dir /b *.txt | gsort -n --key=2 --field-separator=- xxx-01-23.txt xxx-1-1.txt xxx-2-222.txt xxx-33-33.txt xxx-111-11.txt >dir /b *.txt | gsort -n --key=3 --field-separator=- xxx-1-1.txt xxx-111-11.txt xxx-01-23.txt xxx-33-33.txt xxx-2-222.txt ひとつ目はちょっと無理やりw
651 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 22:54:09.19 ID:e2k0MxNT.net] 11 011 0011 のソート順が分からない
652 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 00:04:18.32 ID:L9fnubfL.net] >>641 もちろんできる 下記をSortの後に追加 if "%1"=="/R" echo System.Array.Reverse(lines); >>SortLogical.cs
653 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 23:16:58.61 ID:ICS6MdcL.net] ・画像ファイルが縦長か横長か? ・画像ファイルの拡張子判別 上記2点をバッチから行いたい 縦横に関してはimageMagickで出来そう identify -format "%[fx:h>w?1:2]" "ファイルパス" 拡張子判別も同様に %m でファイルタイプからやれそうではあるのですが 何か更に良い方法やコマンドラインアプリなどがあったらアドバイス欲しいです
654 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 04:23:41.63 ID:D8jWL7f3.net] 画像のサイズはOS標準の方法としてシェルネームスペースからファイルのプロパティの詳細タブの値を拾ってくるやつがあったと思う COMが使えるスクリプトで取ってくる必要がある 拡張子はバッチファイル 拡張子 取得でぐぐったら出てくるんじゃないの
655 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 05:53:39.32 ID:ZVoj0wBD.net] Param([Parameter(mandatory=$true)][String]$inputFile) Add-Type -AssemblyName "System.Drawing" try{ $img = [System.Drawing.Image]::FromFile($inputFile) if ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Jpeg)) { $mimetype = 'image/jpeg' } elseif ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Png)) { $mimetype = 'image/png' } elseif ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Bmp)) { $mimetype = 'image/bmp' } elseif ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Gif)) { $mimetype = 'image/gif' } elseif ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Icon)) { $mimetype = 'image/icon' } elseif ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Tiff)) { $mimetype = 'image/tiff' } elseif ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Wmf)) { $mimetype = 'image/wmf' } elseif ($img.RawFormat.Equals([System.Drawing.Imaging.ImageFormat]::Exif)) { $mimetype = 'image/exif' } else { $mimetype = 'image/unknown' } $w = $img.Width $h = $img.Height $img.Dispose() } catch{ $mimetype='unknown' } echo "$mimetype`t$w`t$h"
656 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 05:54:07.77 ID:ZVoj0wBD.net] ↑ getDetailsOfでプロパティを取ってくる以外の方法 jpg/png/gifぐらいだけど powershell ./test.ps1 "画像ファイルのパス" プロパティだと拡張子に関連付けられたものになる 中身がjpgなのにファイル拡張子が.pngの場合とかある? なお、batに埋め込みたいならググれば方法は出てくる
657 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 09:33:19.21 ID:T20/oaZi.net] >>647-648 ありがとうございます 最初、実行ポリシーが云々でエラーになったものの、ググって powershell -NoProfile -ExecutionPolicy Unrestricted .\test.ps1 '%~1' としたら動きました シングルクォートにしないとスペースを含むパスでエラーになりました > 中身がjpgなのにファイル拡張子が.pngの場合とかある? バッチでリネームついでにそういった間違っている拡張子を正しいものに直したいと思いまして image/jpeg とかを .jpg に変えたら面倒も無くそのまま使えそうです powershell凄いですね。外部アプリ使わずに判別出来ちゃうんですね WINEX32.DLL https://www.vector.co.jp/soft/win95/prog/se478825.html こういうのが必要なのかと思ってました ただファイル一つ一つをバッチからpsを起動してたら遅いのだけが難点ですね 速さは重要ではないので構わないのですが いっそ全部psで書けるスキルがあれば良いんですけどねー バッチですら四苦八苦してる身としてはさくっと書ける人が羨ましいです
658 名前:デフォルトの名無しさん [2022/02/16(水) 16:36:49.58 ID:w27+Spzi.net] 初心者過ぎて分からないんだが
659 名前:Rマンド >nul 2>&1 if "!ERRORLEVEL!" == "0" 〜 ってちゃんと意味ある? 出力捨てるのは成功するから毎回リターンコード0になったりする? [] [ここ壊れてます]
660 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 17:40:22.47 ID:SGx0nl/1.net] 正常時に出力の無いコマンドはリダイレクトできないからエラーになるんじゃね。 異常時にコマンドがエラー出してもエラーになるから 結局、区別がつかない。
661 名前:デフォルトの名無しさん [2022/02/16(水) 18:08:47.78 ID:5G/Gik2e.net] >>651 辞めといた方がいいか 前の処理が正常終了したら次に進むベストプラクティスってなんだろう
662 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:18:47.77 ID:t0Nu4cH6.net] コマンドの復帰コードと標準(エラー)出力のリダイレクトとは無関係なので ちゃんとコマンドが復帰コードを返していたら問題ないはず errorlevel環境変数を見るのはちょっとリスクがあるけどわかっているなら問題はない if errorlevel 1 〜 なら確実
663 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:26:54.82 ID:lGeZIdOq.net] コマンド if not errorlevel 1 echo ok コマンド >nul 2>&1 && echo ok || echo fail
664 名前:デフォルトの名無しさん [2022/02/16(水) 18:31:31.49 ID:5G/Gik2e.net] ifのパラメーターにerrorlevelがあったのね 確かに環境変数使うより良さそう PC起動時に毎回開きたいアプリを順番(前後関係あり)に開いてくだけだから基本startコマンドなのよね
665 名前:デフォルトの名無しさん [2022/02/16(水) 18:32:09.18 ID:5G/Gik2e.net] おーありがてえ
666 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:39:35.08 ID:IpLn/l6Q.net] >>651 > 正常時に出力の無いコマンドはリダイレクトできないからエラーになるんじゃね。 どこからこんなアホな知識を仕入れたのか知らんが、そんな知識を開陳する度胸に感心したわ
667 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:44:42.98 ID:91qDUo1j.net] >>655 if errorlevelは 以上 だから気をつけろよ DOS時代の使い勝手重視だ
668 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:50:49.88 ID:t0Nu4cH6.net] >>658 DOSだと、gotoしか書けなかったね
669 名前:デフォルトの名無しさん [2022/02/16(水) 22:29:00.93 ID:5G/Gik2e.net] >>658 以上なのか… 勘違いしそうだったわ気を付けよ…
670 名前:デフォルトの名無しさん mailto:sage [2022/02/20(日) 02:07:07.44 ID:UpXKcN5y.net] これなんでこうなるの? echo abc 行末|findstr "^abc" 一致 (echo abc 行末)|findstr "^abc" 一致 echo abc 行末|findstr "行末$" 一致 (echo abc 行末)|findstr "行末$" 不一致 echo abc 行末| findstr /r /c:"^abc 行末$" 一致 (echo abc 行末)| findstr /r /c:"^abc 行末$" 不一致 元はこういう感じでハマっててやっと原因突き止めたんだけど理由が分からん (for /L %%j in (1,1,%i%) do for /f "delims=/" %%a in ('echo "%%B_%%j%%"') do echo %%~a )|findstr "^001a\.txt$" || echo ok 因みに /x オプションも駄目だった ('echo "%%B_%%j%%"') の部分も元は ("!B_%%j!") で単独では展開されてたのにパイプ繋ぐと展開されずハマってた パイプ繋いだら遅延展開無効化されるん?
671 名前:デフォルトの名無しさん mailto:sage [2022/02/20(日) 02:58:56.00 ID:WlVIdNMt.net] (echo abc 行末)|findstr "行末 $" は一致する スペースが入るみたいだね
672 名前:デフォルトの名無しさん mailto:sage [2022/02/20(日) 03:21:58.43 ID:j5UZdGyh.net] >>662 それだと、空白は文字列のOR扱いで、"行末"と"$"のどっちかってことになる が、まあそういうことだね echo onの状態で実行してみりゃわかる
673 名前:デフォルトの名無しさん mailto:sage [2022/02/20(日) 03:38:00.04 ID:UpXKcN5y.net] ありがとう (echo abc 行末)|findstr /r /c:"^abc 行末 $" これで一致したから半角スペース入ってしまってるで間違いないみたい
674 名前:デフォルトの名無しさん mailto:sage [2022/02/20(日) 03:42:58.59 ID:j5UZdGyh.net] echo onでどう展開されるかみればどうしてそうなったのかわかるよ
675 名前:デフォルトの名無しさん mailto:sage [2022/02/20(日) 05:28:05.67 ID:UpXKcN5y.net] >>665 当然echo onでも確認してる 例えばこんなの for %a in (a b c) do (echo %a|findstr "b$") echo onでの表示では %a | とパイプとの間にスペース入るけどechoの末尾にゴミなんて付かないのよ 元のバッチやコマンドプロンプトの入力で以下のようにスペース入ってれば末尾にスペース入るけど上記のように詰めて書けば入らない for %a in (a b c) do (echo %a |findstr "b$")
676 名前:デフォルトの名無しさん mailto:sage [2022/02/20(日) 05:50:10.39 ID:WlVIdNMt.net] >>663 ん? 空白区切りってダブルクォートを無視するの? "行末(sp)(sp)$" で不一致になるから "行末(sp)$" に一致してるんだと思ったけど
677 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 23:05:19.75 ID:J9914B5I.net] >>661 scripting.cocolog-nifty.com/blog/2007/03/call_echo_offse_6ea2.html
678 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 18:44:29.79 ID:xURWaPVP.net] 同じアプリのファイルを複数起動していて コマンドラインが同じになっているとき 閉じたいものだけ閉じる方法ってありますか?
679 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 18:45:11.42 ID:xURWaPVP.net] すいません、コマンドラインでなくプロセス名でした
680 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 20:06:56.37 ID:zbdaU1gm.net] >>670 全く同じexeを複数起動してるんなら、プロセスID指定しかないけど プロセスID見たってどっちが消したいexeなのか判別できる? ・リスト表示 tasklist /fi "IMAGENAME eq xxx.exe" ・削除 taskkill /pid 9999 パスが違うとかならパス情報を見るとかでプロセスIDを特定できる wmic process list full format:csv|findstr "C:\foo\bar\baz.exe"
681 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 20:12:59.55 ID:xURWaPVP.net] >>671 ありがとうございます パスは違うので、その方法でやってます 助かりました
682 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 22:00:00.64 ID:zbdaU1gm.net] >>672 もう出来たとは思うけど、上のだとfindstrも一緒に検出されるので出した責任として訂正しとく for /f "tokens=6 delims=," %%i in ('wmic process list full /format:csv^|findstr "C:\bin\INET\Jane"^|findstr /v findstr') do set pid=%%i tasklist /fi "pid eq %pid%"
683 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 12:26:06.99 ID:2NOKllqN.net] >>673 ありがとうございます! 頂いたコードもとても参考になります
684 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 16:12:21.37 ID:XLKEJl76.net] アクティブウィンドウ名がわかればいいんだね vbaでできるらしいが
685 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 14:32:21.94 ID:53waehJr.net] あるフォルダROOTの配下にフォルダ001〜フォルダ999があり、その中にはAAA,BBB,CCCという3ファイルがあるとします。 フォルダ001から999配下の全てのAAAをZZZにコピーするために コマンドプロンプトでROOTフォルダで「for /r %i in (AAA) do copy %i %~pi\ZZZ」としたら求める結果になりましたが これをバッチファイルに書くと構文エラーみたいなエラーがでます。 バッチファイルに書く場合どうしたらいいでしょうか。
686 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 15:13:37.97 ID:jqA3dRQ6.net] 魔空空間では %i in (AAA) do copy % という名前の環境変数に展開されて消えてしまうのだ! すべての%を%%に書き換えて対抗しよう! なおコマンドラインでも環境変数が定義されていたら展開されてしまうぞ こちらは対処不能だキヲツケロぉ
687 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 15:28:31.03 ID:23a2YeOc.net] >>676 コピーするファイル数が膨大でなければバッチより2画面ファイラーの方が便利 ファイル検索して、反対側窓のフォルダーにコピー、移動する dynaやafx
688 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 15:52:45.58 ID:53waehJr.net] >>677 ありがとうございます。うまくいきました! 理由まで教えていただきありがとうございました。 >>678 ファイラ、懐かしいです。からこれ20年くらい前??FDとか使っていたことがありますが、、、、また使ってみようかと思います。
689 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 02:42:22.51 ID:1/likOkq.net] 家の光回線をIPv4 over IPv6に変えたら、「VPN931でしょ?」ERRORが出て書き込めなくなった 試行錯誤の後、携帯回線を無線子機経由、テザリングで繋いでおき 「ネットワークアダプター」のページからイーサネット(有線)を無効にして書き込み、 書き込みが終わったら再び光回線を有効にするようにした しかし、つい携帯回線に切り換えたのを忘れたまま動画を観てしまうようなことが何度もあり、 1回で月無料分のギガを使い切ってしまい、有料になったり速度制限がかかったりして不便&勿体ないので なんとかバッチ処理出来ないかと思い、 「有線LAN 無効化 バッチ」で検索して見つけた下記のページを参考にしてバッチファイルを作ってみた ↓ https://mseeeen.msen.jp/switch-network-adapter-enabled-in-windows-with-batch-file/ ---------- @ECHO OFF netsh interface set interface "イーサネット" disabled ECHO 一時的に光回線(有線・イーサネット)をOFFにしました timeout 30 netsh interface set interface "イーサネット" enabled if ERRORLEVEL = 1 PAUSE ---------- 上記を拡張子batで保存し、参考URL同様にショートカット経由で管理者権限で起動するようにしました。 ※メモ帳で編集したとき、デフォルトでUTF-8→ANSIにすることを知らずに文字化けして上手く動かなかったのはお約束。 これで、書き込む直前にショートカットで起動すれば 30秒だけ光回線が切れ、wifi=携帯回線で書き込める その後は自動復帰するので繋ぎ忘れが無くなった もしもっと良い方法があれば教えてくださいm(_ _)m
690 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 10:55:59.83 ID:i3Z8TR4r.net] ネットワークの有効無効を変える必要はなくて、単にどっちがデフォルトゲートウェイになるかを制御するだけで十分だよ スマホ側にプロキシたてて、専ブラ(だよね?)からそのプロキシを使うように設定すれば常時5chだけスマホ側に流すこともできる
691 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 12:05:05.72 ID:vZQIGC81.net] 5chのipでルーティングの設定するだけでは?
692 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 13:36:04.21 ID:i3Z8TR4r.net] 理論的にはそうだけど実際5chが使ってるIP範囲調べたことあるかい? CDN通してるから、取りうるIP範囲まるごとスマホに流したら5ch以外の多くのサイトのトラフィックもそっちに流れてデータ通信容量が消費されてしまう
693 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 13:41:51.25 ID:i3Z8TR4r.net] 途中で書き込んでしまった 消費されてしまうので、L3レベルでの経路選択は現実的ではない なので一時的にまるごと切り替えてしまうか、URLを指定してシステム全体でプロキシ設定を行う、専ブラについてるプロキシ機能を使うとかのが良い しっかりインスペクションして経路振り分けられるルーターを用意して設定できるならそれもありだが一般人向けではない
694 名前:680 mailto:sage [2022/03/12(土) 14:48:36.28 ID:1/likOkq.net] >>681 流石ですね!あっという間に より良い方法を考えつくとは! …ですが、専ブラに登録している全てのスレの新着チェック(=下り)は光回線で出来るので、 ギガ節約のためにも、無理にスマホに流さなくて良いのですよ 専ブラの上り(=書き込み)だけ携帯回線に流すバッチなんて作れますかね? ヒントや参考になるURLでも構わないのですが
695 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 14:54:48.13 ID:1/likOkq.net] PC再起動したら、 >>680 のバッチ実行時に「この関数を完了できません」が出て 狙い通りに動かなくなってしまった 仕方なく、以前と同じように 「アダプターのオプションを変更する」 からイーサネットを無効にして接続中 一番最初は 5chに書き込むたびにPCの裏に回り、 いちいち外しにくいLANケーブルを切り離していたから、 これでも 石器時代から稲作が出来るくらいには進化しているのだがw たぶん名前が一致しなくなってしまった?のが原因と思うので、自分で対策してみますm(_ _)m
696 名前:デフォルトの名無しさん mailto:sage [2022/03/12(土) 19:45:55.71 ID:i3Z8TR4r.net] 全自動で書き込みだけ他に流す仕組み考えてみたけど作らなきゃいけない部分もあるから質問者が実行できる気がしない(もはやスレチレベル) スマホと書いてあるけど、安いPPPoEのプロバイダ契約するとか、donedoneや楽天、povoみたいな基本0円のSIM+モバイルルーターの回線と余ってるPCや仮想マシンを使っても良い 専ブラが使ってる5chのAPIの各リクエストが分離できる(事前に認証を行ったりする必要がない)と仮定すれば以下の仕組みで行けるはず 自宅内に5ch.netの各サーバーのリバースプロキシを立ててオレオレCA運用を行う クライアント側でCAの自己証明書をOSに追加して、そのローカルIPをhostsで5chの各サーバに設定する リバースプロキシ側で特定のパスのリクエストだけはスマホ側に用意したサーバーに投げる スマホ側のサーバーはリクエストを受け取ったら、正しい5chのサーバーに投げて、その応答を返す
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"
798 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 14:54:07 ID:3pQwOKKR.net] set RUNEXE="%%~a" じゃろが
799 名前:デフォルトの名無しさん [2022/05/23(月) 17:31:28.72 ID:JTigk3sw.net] コマンドプロンプトはとても残念なので set RUNEXE="%%~a" echo RUNEXE: "%RUNEXE%" とすると(%a=「t e s t」だった場合)RUNEXE: ""t e s t""と表示されるのだよ...
800 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:44:09.74 ID:3pQwOKKR.net] すまんな >>787 は>>784 に対するレス >>786 は問題ない ケツにスペースあってもいいようにしたんだろ
801 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:52:18.15 ID:9Kev8wRG.net] >>782 wmicというのがあるんだ、知らなかった wmic /? とすると赤字で非推奨ですと出た
802 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:13:36.87 ID:kx8uWZPf.net] 非推奨烙印はcmdを滅ぼそうとしているMS内の一派の仕業だから気にするな vbsやpowershellのようにcomの使える言語であれば同じことできるから要らんといえば要らんのだがな
803 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 22:36:34.02 ID:vE3vs/4c.net] 自分の周りではあまり知られてないようなのだけど、 setは代入文全体を"〜"で括るとうまくいく場合が多い。(確実ではない) cmd /v:on set "aaa=(bbb|ccc)<ddd" echo aaa=[!aaa!] ↓ aaa=[(bbb|ccc)<ddd] 引数でパスを受け取るバッチファイルでよく使う。 「〜」と「"〜"」のどちらの形式で指定されても同じ値を得られる。 @echo off setlocal EnableDelayedExpansion set "FilePath=%~1" echo FilePath=[!FilePath!] exit /b
804 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 15:42:40 ID:DHD4MJfY.net] 好みだろうけど 常に値はリテラルな""に埋め込まれたものと考えることにした なんらかの一貫性を貫くのが精神衛生上よい
805 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:01:20 ID:EZq8VYJv.net] 不自由でも一貫性を好む者って多くの事に対応出来ない低脳だと言ってるようなもの 最適を選ばずワンパターンな手法に頼り用いたがる思考停止した老害へと一直線
806 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:09:51.54 ID:DHD4MJfY.net] むしろワンパな%~の剥ぎ取りを信頼してるのが気になったんだが ダメ文字入っててもサブストリング置換で最後と最初の文字削ったり頭を柔らかく持とう
807 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:12:20.60 ID:fGpRFhuy.net] 文字列の置換抜き出しを考えてるなら常に""の中の状態にするのは正解だと思う
808 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 16:32:08.01 ID:wIwv7WB3.net] バッチには(残念ながら)絶対はないから、すぐに展開せず要時まで自由度を残す習慣は大事だと思う
809 名前:デフォルトの名無しさん [2022/05/24(火) 19:24:26.65 ID:ZQNStJn7.net] ダブルクォートをまともに削除できるのが%~しかないのが全部悪い 環境変数にスペースが入っている「かもしれない」状態になるとまともにダブルクォートを外す手段がないんだよね。 set File1=X:\a a.txtとset File2="X:\a a.txt"から同じ状態に持ってこれるコードは簡潔に書く方法がないから諦めた。 sub.bat %File1% %File2% // File1が分裂して死ぬ sub.bat "%File1%" "%File2%" // File2のダブルクォートが二重になって死ぬ 結局%~1ではがすのが1番まともに書けると思う
810 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 03:42:10.08 ID:Mc6K3UpU.net] >>798 set "File2=X:\a a.txt" だと何かハマるパターンがあるの? 普段こうするようにしてるから、後学のために知っておきたい
811 名前:デフォルトの名無しさん [2022/05/25(水) 09:12:08 ID:nfFPZ/Hm.net] >>799 set "File2=X:\a a.txt" と set File2="X:\a a.txt" で結果が違う 俺もファルパスなら上の書き方しか使わん
812 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 20:31:54.51 ID:CvuRtmLM.net] C:\Program Files (x86) 結構昔からあるこのフォルダの配下に置かれたファイルをまともに扱えるバッチはどれだけあるだろうか…
813 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 00:47:09.31 ID:/szrY+JV.net] >>800 いや、だからその結果が違うのを踏まえた上で、何か罠があったりするのか、という話 回避策があるのにわざわざ問題のある2例しか上げてないから、 何かしらの罠があるから例に出さずにいたのかな、と
814 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 13:33:44.93 ID:eXnOjPn/.net] その書き方知らんかっただけでしょ
815 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 15:42:12.26 ID:0e7T6NOT.net] 半角スペースや&の付いたファイルなんか知った事かと言い切れるなら幸せなんだがな
816 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 15:55:49.96 ID:J8y6hNBw.net] >>801 そこだけの問題なら、そのフォルダにシンボリックを張って別の入り口を作り、そこから出入りする
817 名前:デフォルトの名無しさん mailto:sage [2022/05/26(木) 15:56:19.27 ID:J8y6hNBw.net] シンボリックリンクね
818 名前:デフォルトの名無しさん [2022/05/27(金) 15:37:55.51 ID:DoIFvz+R.net] >>802 環境変数にダブルクォートが入るかそうじゃないかだけの問題なのでそこだけの違いにした こっちの書き方の方が好みか? set "File3=X:\a a.txt" set "File4="X:\a a.txt"" File4の書き方は受け入れられんだろうからこの書き方はやめた
819 名前:デフォルトの名無しさん mailto:sage [2022/05/27(金) 21:59:22 ID:cruiCFAs.net] >>807 さすがにそのFile4の書き方はないでしょ。好みの問題じゃない。 「&」とか含めないのでは?
820 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 00:40:39.75 ID:eWdSCVXj.net] >>807 からかわれてるのか、はぐらかされてるのか判断つきかねる 最初の疑問には全く回答得られてないし とりあえず半年ROMっときますわ
821 名前:デフォルトの名無しさん [2022/05/28(土) 01:15:25.17 ID:N6SgNzpI.net] set File1=X:\a & b.txt set File2="X:\a & b.txt" set "File3=X:\a & b.txt" set "File4="X:\a & b.txt"" File4駄目だったわ。File1もファイル名が切れるが 最初の疑問(>>799 >何かハマるパターンあるの?)なら、 俺がFile3のパターンでハマったことはない
822 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 01:53:02 ID:sY9CTUi4.net] >>807 4はどういう状況で使うのか気になる。危険しか感じない わざと反転させたい場合? >>810 値に「"&"」など、"エスケープしてる状態で含んでいる場合、反転する set S=abc"&"def set "STR_A=hoge%S%fuga" 結局、「何でも許容出来るように」に対応するのはコストが高過ぎるので、想定され得るものに限定しそれに合わせて書くのが現実的 値にしろ運用にしろ何らかの制限付きという条件の下で割り切って使うならバッチは楽 全てのエラー判定とかやり出すと膨れ上がるしキリ無い 何を制限とするかの見極めと切り捨てが大切
823 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 02:02:37 ID:4gWpv+XJ.net] BATでは取返しのつかない結果にならない限りエラーで止まる、期待した結果にならなかった のは別にいいかなって思ってる
824 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 02:59:44.49 ID:j34iIhvZ.net] エスケープ周りをしくじれば大抵は取り返しが付かないけどな バッチでエスケープ処理が発生するようなら他のスクリプトを検討した方がいいね
825 名前:デフォルトの名無しさん [2022/05/28(土) 04:29:23.28 ID:Ee8LXfQh.net] タスクスケジューラじゃregを起動できないから、間にbatファイルを挟み、その中でregを指定させたんよね 無事スケジューラの動作が確認できたものの、今度はPC操作中にcmdの起動が挟まってゲームその他の操作を阻害する 瞬間的なcmdウィンドウのポップアップを防ぐ手段はないものだろうか・・・ フリーソフト等にならタスクバー内で完結するプログラム動作も珍しくない、それを通常のcmd起動にも実現させたい^^;
826 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 05:13:46 ID:sY9CTUi4.net] >>814 ttps://okwave.jp/qa/q852803.html あとVBから出来たとか昔は出来たけど出来なくなったとか何処かで見た気がす
827 名前:デフォルトの名無しさん [2022/05/28(土) 05:50:05.93 ID:Ee8LXfQh.net] >>814 え・・・ショートカットリンクにすると、bat発動時のウィンドウポップアップは消えるんですか? 発動、実行、処理に問題はありません 指定時刻で瞬間表示されたcmdウィンドウの影響で生じる、PCデスクトップ上の強制画面切り替えが問題なんです・・・
828 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 19:57:51.48 ID:vVz/heur.net] >>816 「え・・・」とか言う前にリンク先ちゃんと読んだ? リンク先に「最小ウィンドウ(バックグラウンド)」で実行できる事は書いてある。 ゲームが影響受けないようになるかは知らない。 タスクスケジューラでの実行でウインドウ出したくないなら 簡単なのはSYSTEMアカウントで実行するように変更すること。 HKCU使ってんなら変更が必要。
829 名前:デフォルトの名無しさん [2022/05/28(土) 20:45:56.96 ID:Ee8LXfQh.net] >>817 的確な指摘をありがとうございます! SYSTEMアカウントは最初の試行錯誤で試したものの、最上位命令でさえスケジューラの表示で[実行中]となるわりにbatの起動が見られず、その経緯を経てAdministratorsへ変更していました batのショートカットを作成し、プログラム操作項目に.lnkを足し、さらにアカウントをシステムへ揺り戻すと、確かにcmdウィンドウの起ち上がり消失を確認できました 問題はタスクの表示が[実行されました]ではなく[現在タスクを実行中です]なところ これが実際にbatを起動してくれているのか怪しいです・・・ もう少し経過観察してみます
830 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 20:49:45.87 ID:4gWpv+XJ.net] systemアカウントでの実行だから 逆に現在ログインしてるユーザーの画面に何か表示するようなことは出来ない batで何か表示しようとしても無理だから起動の確認は後に残るようなファイル出力等で確認
831 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 20:51:48.94 ID:4gWpv+XJ.net] これはbatに限らないのでメモ帳とか何かのソフトを起動させても画面には現れない
832 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:07:54.58 ID:Ee8LXfQh.net] 仕組みの解説ありがとうございます batの起動によりregファイルを実行することが目的ですので、SYSTEMアカウントのそのような仕様は有難いですね だから各サイトで迷ったらSYSTEMで!と記されているのでしょうか(私も最初はそれに倣って試していました) 5ch掲示板の多くが「余所でやってください」となるので、ついでで恐縮ですが、こちらにコピー↓↓させてくださいm(vv)m 現状ではSYSTEMアカウントのbat強制発動力に疑問を抱くものの、可能なら私もSYSTEMでタスクを構築させたいです 経過観察後はAdministrators最上位でショートカットを指定起動させた場合のデスクトップ周りを検証するつもりです(bat不発かcmd出現になりそう) ------------------ タスクスケジューラでAdministrators+最上位にすると「正しく終了」+準備完了になります しかしそれをSYSTEM+最上位にした場合、「現在タスクを実行中です」+実行中と変化します このSYSTEMアカウント処理の際に設定項目の「新しいインスタンスを並列で実行」はどうなるのでしょうか? 実行中を上書き(もう一度プログラム起動)し続けるのであれば嬉しいのですが、並列という語句で「内部に延々と加算し続けるのか?」と不安に思いました
833 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:31:44.96 ID:4gWpv+XJ.net] >>821 SYSTEMで実行しても実行完了してたら状態は「準備完了」に変わるよ 実行中ならまだそのbatは起動したままで終了してない もし終了してないのが予期してない動作なら何か途中で止まってるので 複数起動を許可したのならbatのインスタンスが増殖することになる
834 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:38:44.30 ID:4gWpv+XJ.net] 想像するに batが何かの応答を要求しててユーザーのアクション待ちなんじゃないかな 当然キー入力なんかはSYSTEMからは無理なので タスクマネージャーから強制終了されることぐらいしかできない 上で言ってるようにカレントユーザーじゃないのでHKCUなんて存在しないんだがその点は大丈夫か
835 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:47:41.17 ID:j34iIhvZ.net] SYSTEMタスクからHKCUをってことは、まず現在ログイン中のユーザーを特定してそいつのユーザープロファイルのNTUSER.DATを弄ることになるわけだよ このスレの範疇だと無理っぽいけどがんばってね
836 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:55:22.65 ID:4gWpv+XJ.net] 実行したいユーザーは今の自分なんだからそこは固定にしとけばbatにできるだろ 他ユーザーのレジストリ操作はググれば出てくるよ
837 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 21:57:50.03 ID:4gWpv+XJ.net] まあ色々言ったけど 画面表示をさけるだけなら、俺ならWSHかPowerShellを使うな
838 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 22:01:28.84 ID:o4a1B59x.net] regファイルを実行ってレジストリ登録?それならbat使わなくても 最上位の特権で実行する プログラム: C:\Windows\regedit.exe 引数: /s regファイルフルパス名 でよくない?
839 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 23:50:47.54 ID:Ee8LXfQh.net] 皆さんありがとうございます やはり表示が「正常に」→準備完了ではない以上、タスクは途中状態でしたか・・・この分では肝心のbatも実行されそうにありませんね 最初のSYSTEMによるタスクの場合、管理者権限での実行に不備があるようで、それでタスクは発動するもののbat動かずという結果になると判断していました それでAdministratorsへ変更し、命令そのものが管理者によるものへ置き換え、これまでの経緯に至っています >>827 く、詳しくお願いします・・・自分でも相当な時間をネット検索に費やしましたが実現できませんでした 特に1文字でも損なうと完成されない、引数関連が上手くいかなくて 昔ながらのbatなら自分にもギリ可能でしたので今に至ります regなら管理者権限も関係なく値を変更してくれるので、それさえ可能なら一番楽なんですよね
840 名前:デフォルトの名無しさん mailto:sage [2022/05/28(土) 23:51:00.59 ID:Ee8LXfQh.net] ことの発端は配信の最適化であるDelivery Optimizationのサービス無効化です そのサービスの0004化が、batの場合管理者権限必須らしく、batを通常起動しただけではスルーされてしまう reg単体で行えず(自分は)、管理者権限必須で、それらを自動タスク化した場合が大変でした 該当サービスは100%テレメトリながら、散々な細かい検証をしたもののWU関連を全て止めなければ勝手に手動(トリガー)状態へ強制されます そしてサービスが手動状態にあるとき、ディスクのクリーンアップ他を少しでも伴うとそこで実行されてしまう ならばどうせカタログで更新しているし?とWU関連全て無効化したのですが、そうすると今度はエクスプローラーが常時CPU使用率5-10%くらいになり微ラグ appxのwsappxがC:\ProgramData\Microsoft\Windows\AppRepositoryで無限増殖する現象と似ていますね、こちらも8-10%とゾンビし、WU全無効化のエクスプローラーより酷いラグを発生させる OSと密接に絡んでいるのは痛感していますが、WUを生かしつつ、元から無効化しているストアに加えて電卓等も捨ててappxサービスを完全無効化(こちらは手動ゾンビなし) あとは如何にしてエクスプローラーのバグを招かずにDelivery Optimizationの恒久的な完全無効化を成せるか、なんです・・・
841 名前:デフォルトの名無しさん [2022/05/29(日) 00:21:06 ID:XW+WDPtU.net] >>811 File4は環境変数の末尾にスペースが入らない&&環境変数をダブルクォートでくくる目的 setに与えるコマンドラインとしては正当だが、&とかエスケープが必要な文字が入ると構文解析で事故るのでFile1と同じくやらんほうがいい書き方だったわ
842 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 00:28:55.06 ID:NHtpNvxH.net] >>829 そもそもなんだけど、レジストリを書き替えただけでうまくいくのは確かめてるの? 通常レジストリの書き換えを反映するには、HKCUの場合ログオンが、HKLMの場合再起動が必要なはずだけど あとユーザーにadmin資格を追加するのは出来ないの 資格があれば最上位の特権にチェックでいけると思うけど
843 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 00:44:54.89 ID:Dh5s7alL.net] >>831 長年自分好みのregを作成し続け、発動そのものはパンピーチンパン頭なわりに経験則の積み重ねで上手くいっています 再起動の観点は盲点でした、その辺りも毎回あやふやでしたので再確認しないとですね regのみでサービスが[無効]へ書き換えられるのを何度か目に
844 名前:している気もしますが reg [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DoSvc] "Start"=dword:00000004 bat sc stop DoSvc reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DoSvc" /v "Start" /t REG_DWORD /d "4" /f SYSTEM最上位+C:\Windows\regedit.exe /s D:\aaa\bbb\ccc.regで新規タスクを設けたところ、正しく終了し、感触が良さげ cmdのようなポップアップもありません、この環境で経過観察したいと思います ただ、今気づきましたが、regは実行中のサービスを止める内容が抜けているので、その線も追加で調べ直します reg書き込みで駄目ならsc stop特化のSYSTEM最上位batタスクを別途用意する必要がありそうですね 偶然にも、今までの調整が無駄になっていない様子で嬉しいです [] [ここ壊れてます]
845 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 01:40:32.51 ID:MBI5r2Hn.net] 対象がHKLMならSYSTEMタスクで普通にバッチ呼び出せばいいんじゃないの っていうかレジストリいじらんでも「sc config DoSvc start= disabled」でいいんじゃないか
846 名前:デフォルトの名無しさん mailto:sage [2022/05/29(日) 03:14:11.71 ID:YV7/1RzI.net] 文章に顕れている
847 名前:デフォルトの名無しさん [2022/05/29(日) 07:42:31.92 ID:Dh5s7alL.net] 幾つかあるOS連動のサービスは、それぞれで通常と異なる処置が求められるんですよ・・・ Delivery Optimizationもそのひとつ 今のwin10版はギリ対応可能ながらも、win11の現行はバイパスが削除されたり、これまたさらに面倒な様子で将来が不安 最初に書きましたが、SYSTEM最上位の単純な指定ではタスク上で「正常に」となってもサービス側が受け付けなかったんです ネット情報だとSYSTEMアカウントに管理者権限が内包されているそうなんですけどね・・・ そこで試行錯誤の上、Administratorsで茶を濁していた→またSYSTEMタスクでやったらいいんじゃね?というのは堂々巡りになってしまいますわー 貴重な意見有難うございました
848 名前:773 mailto:sage [2022/06/01(水) 01:09:04.33 ID:ixkk/oFB.net] >>775 の続き 7-zip の一時・作業フォルダの指定 Command Line Switches https://sevenzip.osdn.jp/chm/cmdline/switches/index.htm -w Set Working directory 例には、-wc:\temp と書いてあるので、-wZ:/rartmp と書けばよい。 注意点として、-wz:/ の、-wとz:/の間に、空白を入れない事 -wだけを指定して、パスを指定しなかった場合、Windows の一時ディレクトリを使用する。 -wを指定しない場合、解凍元のフォルダを使うみたい
849 名前:デフォルトの名無しさん [2022/06/01(水) 06:20:00.46 ID:L0Bj7AY3.net] ウヒ、プヒヒ・・・ reg手段は結局タスク発動のみが空振りするだけで、肝心のプログラムをサービス変更まで繋げることが出来ませんでしたわorz 引数云々の方法や自分が採った記述の成否・不備は定かではありませんが、まあ、涙目 引数の書き方など、ネット上にさえ適切な情報がなくこれは厳しいですな カリキュラムや資格を取る過程などで自然と学ぶような内容なんですかね・・・そもそもタスクスケジューラへの強い関心が一般的な日本人の中に存在しないらしいです→グーグルロボット検索が拾えるサイトも無い その涙目でまた振り出しに戻り、システム最上位のbat単純起動からやり直すと、なんと達成(・д・) システムアカウントに含まれるバックグラウンド動作、最上位に含まれる優先度、そして内包されているらしい管理者権限 regについてもデスクトップから普通にクリックすると再起動無しで値を4へ変更可能でしたので、やはりスケジューラ登録の過程またはサービス仕様に問題があったようですね 何をもって今回、システム最上位が上手く機能したか不思議でなりませんが、そしてこれが今後もしっかり継続的に発動・反映してくれるか分かりませんが、 当面はAdministratorsで生じていた「cmdポップアップによるデスクトップ阻害」を得ることなくタスクが実行でき、サービスの値もきっちり変わり、嬉しく思います ポップアップさえ無ければ1/1hでスケジューリングし、より高頻度にサービスを強制無効化可能ですので、快適 関連する中で色々と指導して下さった皆さん有難うございましたm(vv)m
850 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 06:50:47.32 ID:2JSbHFne.net] レジストリ書き込み禁止にすりゃイイんじゃねーの? 知らんけど
851 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 09:39:14.46 ID:HV/k13ls.net] 質問 PIDが正しいとして taskkill /f /pid "%PID%" が失敗するケースって何かありますか? 現在以下のように書いてるのですが無駄だったらバカ臭いなと taskkill /f /pid "%PID%" || ( echo エラーメッセージ echo エラーメッセージ echo エラーメッセージ echo hoge.exe を終了汁! pause exit /b 1 )
852 名前:デフォルトの名無しさん [2022/06/01(水) 10:15:17.37 ID:iPR+cHIm.net] https://docs.microsoft.com/ja-jp/windows/win32/api/processthreadsapi/nf-processthreadsapi-terminateprocess 悲しいことに公式のドキュメントには何も書いてない 指定したPIDのプロセスが存在しない (PIDを取得した後に正常終了したとかで起こりうる) プロセスを殺す権限がない ぐらいのはず
853 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 11:32:04.25 ID:HV/k13ls.net] >>840 ありがとう 一応エラー判定残しといた方が良さそうですね
854 名前:デフォルトの名無しさん mailto:sage [2022/06/01(水) 21:11:06 ID:wWdJLXtL.net] プロセスは非同期だからエラーよりはkillした後の存在の有無を判定した方がいい
855 名前:デフォルトの名無しさん mailto:sage [2022/06/02(木) 15:41:59.23 ID:Bch8jX4P.net] >>839 プロセス側にも事情があり間に合わないなどでできないことは多い live2chはkill、確認を数回繰り返してやっといなくなる
856 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 03:02:05.90 ID:LtGyf47s.net] ちっきしょーうのAAを貼りたい気分 結局、Delivery Optimizationサービスの0004化はSYSTEM最上位アカウントだとすかしっぺになる 案の定ふりだしやんけwww なら操作の引数で管理者権限を付与出来ないかと模索するも、ネット情報じゃ無さげ cmd他、どれもコンテキストメニューなど、OSのUIから指定起動させる例ばかりでコマンド的なものがない 在るとしてもネット上で指南されるような内容ではないらしい タスク上は「正しく終了しました」が初回のみ出て、それ以降は常に[次回の実行時刻]を更新するのみ=つまり発動さえしていない 該当するプログラム=batを自分でデスクトップから起動→cmd発動でもサービスが変わらず 同条件で右クリ→管理者権限で実行すると余裕の発動・・・ だからそれをタスクのバックグラウンドでやりたいんだよおおおおおおおおおおorz SYSTEMアカウントはバックグラウンドで動作してくれるけど管理者権限をすかしっぺ、Administratorsアカウントは余裕で発動するけどバックグラウンドじゃない どうしろっつーねん!SYSTEMアカウントが管理者内包ってのは都市伝説なのかああああ 天才様助けてー!
857 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 03:30:52 ID:X5NsBG94.net] 日記は日記帳へどうぞ 余計な修飾子や個人的感想が多く、読ませる気の無い文章 「わざわざ読んで頂き申し訳ございません」という謙虚さが皆無 長々とおまえの頭悪そうな臭い愚痴駄文を読んでやるほど暇じゃない 質問や説明は具体的、且つ、必要最小限、シンプルに 何なら箇条書きでも良いくらい 言葉は齟齬が生じないよう正確に 「発動」って何やねん DQN特有の独自定義 まず正しい日本語と用語を学び直せ
858 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 03:34:09 ID:X5NsBG94.net] > ネット情報じゃ無さげ 無かったら英語でググれ いくらでも出て来る
859 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 03:52:08 ID:oul3t3W9.net] 他ユーザーのレジストリも弄れるってあっただろ
860 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 05:56:36.90 ID:LtGyf47s.net] >>846 いつも英字でも検索しているんですけど、OS関連は意外に多く抽出されるものの、何故かタスクスケジューラに関してのみ微妙なんですよね・・・ 検索ワードがシビアなのか、昨今不評なグーグル検索ロボットの偏向かもしれません とはいえ2019年10月からガチテレメトリとなったyahooを利用する気にもなれませんし・・・ それだけ世間的な意味でタスクに関心がないのだと思いますorz 百歩譲って、system最上位アカウントに管理者権限を強制付与出来ればいいんですが 引数もタスクのようなbatに対したコマンドではなく(そもそもタスクの引数に関する指南が超少ない)、batの中で特定のプログラムを管理者権限で実行する方法ばかり見つかって意味無し 自分がデスクトップ上の右クリでbatを直接管理者権限実行させ、サービスの値が0004の状態はsystem最上位アカウントでも定刻の1時間刻みで「正常に終了」となる 0004を0004に上書きするbat(笑)は管理者権限の壁が無いようだw この場合は次回の予定のみが更新されることもなく、しっかりと前回の実行結果を残す(1時間刻みで) それが!WUか何かのOS強制により手動(トリガー)と改変されたとき、system最上位アカウントではフリーズしてしまう様子なんですよねorz 何なんだよ[配信の最適化]ゾンビ・・・ほんまキモいわ・・・
861 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 06:25:04.10 ID:25hReR0t.net] 文章力皆無なのに自分ではちゃんと書けてるつもりなんだろうなぁ・・・ほんまキモいわ・・・
862 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 06:33:18 ID:oU3L37au.net] 相手すんなよ...
863 名前:デフォルトの名無しさん [2022/06/03(金) 08:41:36.30 ID:r3SSykMX.net] お前の書いていることが省略しすぎたり独自用語か混ざってたりで読むのに疲れる 書いてることからやりたいことの確認をしなきゃいけないし > Delivery Optimizationサービスの0004化 特定のサービスの挙動を変えたいor止めたいらしいのがググってようやくわかった 0004が何を示してるか未だにわからん > なら操作の引数で管理者権限を付与出来ないかと模索するも、ネット情報じゃ無さげ > cmd他、どれもコンテキストメニューなど、OSのUIから指定起動させる例ばかりでコマンド的なものがない ここでのお前がやりたいことは管理者特権を付与してコマンドラインを実行したい」でいいんだよな? > タスク上は「正しく終了しました」が初回のみ出て、それ以降は常に[次回の実行時刻]を更新するのみ=つまり発動さえしていない イベントビューアーで確認したんか?サービスの動作ログだよな?
864 名前:デフォルトの名無しさん [2022/06/03(金) 08:52:40.64 ID:rHBirywu.net] cmdに管理者特権とかいう概念はないのでpowershellを経由するしかない。runasでググれ。 プロセスが管理者特権で動いているかはタスクマネージャーから確認できる(表示列を追加する必要があるが) サービス関連は触ったことないから知らんが、cmdでいくら探してもないならpowershellから動かすしかないんじゃない?
865 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 10:14:29.24 ID:84QuKkvW.net] そもそもの方法論がもうね そこまでバカでそこまで必死なんだったらローカルグループポリシー使えよっていう HomeならPro化すればいいだけなんだから
866 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 10:34:45.22 ID:CIdSIcJr.net] 動詞を指定して実行する事は他の言語でもできるけど、 powershell程には簡潔に書けないからね
867 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 10:42:06.97 ID:CIdSIcJr.net] ちな0004はREG_DWORDの値4で場所的にそのサービスの無効を意味してる こういうの知らないなら何のこっちゃだろうな
868 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 10:52:22.42 ID:CIdSIcJr.net] 一見高度な事の様で大した中身でもなく、文体が気持ち悪いから知ってる人がいてもスルーされる。 案の定相手にしてるのはルビキチだけ
869 名前:デフォルトの名無しさん [2022/06/03(金) 14:11:38.16 ID:LtGyf47s.net] くっそワロた・・・ 0004さえも理解に乏しい、知識量や発想力の人達へ向けて私は質問していたのだろうか^^; runasなどもとっくに調べているし、グルポは超初期に実行済みで、Delivery Optimizationは突破してくるから今日に至っている話なわけで こういうのも過去に書いているんですけど、虫食いで読んで適当に回答している方や、そもそもの知識量・発想・知能的な面で素人の私より劣っていそうな人が いえ、これ以上は暴言になりそうですし省略しますわ ・・・バッチ専用スレとのことで、私も皆さんへ過大評価や虚像を抱いていたのかもしれません powershell、完全に時代錯誤な私の知識・技量では厳しかったものの、これを機に学んでみましょうかね batの代わりにps1か・・・自分に使いこなせるか不安ですorz 皆さん数々の意見を有難うございました
870 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 14:54:57.72 ID:oCwyAce/.net] ごめんあんまり読んでないんだけど、対話が求められて自動化できない?のならdoskeyのマクロは試した? GUIでのダイアログだったら無理だけど
871 名前:デフォルトの名無しさん mailto:sage [2022/06/03(金) 16:20:46.55 ID:gMGR7N6s.net] そもそも対象のサービスが無効にできない (ようにみえる) 類のものなのではないか?
872 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 00:01:31.51 ID:qz14Jeu3.net] AWS の本にも、Windows サーバーの記述は、1% ぐらいしかない。 システムで、Windowsを使う香具師がいない ファイル共有・Active Directory・タスクスケジューラ・Remote Desktop、 バッチ・コマンドプロンプト・PowerShell ぐらいが、簡単に紹介されているだけ ほとんどがDocker を使う。DockerはLinuxの技術。 だから、Windows 10のWSL2 で、Linuxを使えるようにしている
873 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 03:03:41.49 ID:nWFOJiT2.net] ソフト板のVLCスレで暴れてたガイジに似てるな
874 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 03:16:47.38 ID:4DyQyO7v.net] SYSTEMアカウントで書き替えたら再起動が必要なんじゃないの?
875 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 14:29:54.55 ID:bgz5gZEc.net] サービスの無効化なんか sc config でできるだろ なんでわざわざレジストリを直接編集しなきゃいけないんだ?しかもSYSTEMで https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/sc-config そもそもDelivery Optimizationを無効化したい理由は何なんだ
876 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 15:01:48 ID:M0jEQKIa.net] ID:LtGyf47s みたいに要点を簡潔にまとめられず矢鱈とグダグダ書いちゃう人って何かそういう頭の障害でもあるの? 言葉遣いも変だし外国人なのかな
877 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 07:44:59.76 ID:7J0TRviH.net] 簡単なことを難しく言うやつを世間一般ではhorse and deerという
878 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 12:38:26.56 ID:Z2t62Jo8.net] わざとか?
879 名前:デフォルトの名無しさん [2022/07/09(土) 18:11:33.95 ID:qkG/5q2Z.net] 以下のようにUNIXライクにFILESをパイプしてfindstrコマンドに渡すことは不可能でしょうか? @echo off setlocal enabledelayedexpansion set LF=^ for /f "tokens=* delims=" %%x in ('dir /w') do set FILES=!FILES!%%x!LF! @rem ↓FILESをパイプにしてfindstrコマンドの入力にしたい for /f "tokens=* delims=" %%x in ('echo !FILES! ^| findstr "Siki"') do set TEST=%%x pause endlocal exit /B 0
880 名前:デフォルトの名無しさん [2022/07/09(土) 18:16:36.89 ID:GjOGWrlu.net] 不可能です
881 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:31:41.95 ID:qkG/5q2Z.net] 不可能とのことなのでファイルに一旦出力することにしました @echo off setlocal enabledelayedexpansion set LF=^ for /f "tokens=* delims=" %%x in ('dir') do set FILES=!FILES!%%x!LF! echo !FILES! > aaa.txt for /f "tokens=* delims=" %%x in ('type aaa.txt ^| findstr "Siki"') do set TEST=%%x echo %TEST% pause endlocal exit /B 0
882 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:32:57.07 ID:qkG/5q2Z.net] でもこの例ならdir | findstrでいいですね…
883 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:38:08.89 ID:qkG/5q2Z.net] 本当にやりたかったことは curlコマンドで某APIでJSONデータ取得 JSONデータをjqコマンドで値取得 取得した値からfindstrコマンドで余計な行を除去 としたかったのですが、某APIが叩ける回数が限られているため JSONデータを取得する回数を抑えるために一旦配列として保持したかったのです
884 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:41:27.79 ID:LLXk/I9Y.net] >>871 真面目な話そこまでやりたいならPowerShellとか使った方が楽だと思うぞ...
885 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:49:52.57 ID:qkG/5q2Z.net] >>872 実はやりたいことがこれ以上の事は無いのでバッチレベルで可能だろうと思ったのですが 配列?の使い方がよく分からず質問しました ひとまず一時ファイル出力して使いまわす形にしようと思います ちなみに某APIとはスマートリモコンNature Remoの事です
886 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:54:25 ID:NvGIH30g.net] powershellに一票 乗り換えを先延ばしにすればするほど損が積み上がる
887 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:59:09 ID:NvGIH30g.net] 判断のポイントはクッソ不便なbatを捨ててだいぶマシなpsに以降する時期をいつまで先延ばしにするかだけだと思う
888 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 18:59:46 ID:qkG/5q2Z.net] 時間ある時に勉強してみたいと思います>PowerShell ググったらWin7時代から標準であってOSSになっててLinuxでも実行可能とか知りませんでした 割と長く銀行系にいるので頭が古いんでしょうね…
889 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 20:00:42.46 ID:al4zTytR.net] Ruby では、外部コマンドのcurl を呼び出さなくてもできる require 'open-uri' require 'json' url = 'http://〜' # URL uri = URI.parse( url ) p obj = JSON.parse( uri.read ) # response body 例えば、外部コマンドのcurlを呼び出して、スクレイピングするなら、 require 'nokogiri' command = `curl #{ url }` html = `#{ command }` doc = Nokogiri::HTML( html )
890 名前:877 mailto:sage [2022/07/09(土) 20:05:46 ID:al4zTytR.net] >>877 修正 >command = `curl #{ url }` command = "curl #{ url }"
891 名前:デフォルトの名無しさん mailto:sage [2022/07/09(土) 21:46:59.61 ID:3uODqf9z.net] setlocal enabledelayedexpansion set A0= set i=0 for /f "delims=" %%a in ('dir /b^|findstr "Siki"') do set "A!i!=%%a" &set /a i+=1 if not defined A0 echo Not found.&pause&exit /b set /a i-=1 for /L %%i in (0,1,%i%) do echo A%%i = "!A%%i!" pause
892 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 23:21:25.81 ID:3neYOO2a.net] set /a の結果とか与えた数値を16進表記に変換するコマンドか何か良い方法があったら教えて欲しいです
893 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 01:02:07.69 ID:bfkyQVXg.net] >>880 bc.exe
894 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 01:14:08.48 ID:bfkyQVXg.net] https://linuxjm.osdn.jp/html/GNU_bc/man1/bc.1.html gnuwin32.sourceforge.net/packages/bc.htm
895 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 01:32:20.92 ID:bfkyQVXg.net] @echo off set /a a=123*456 echo a=%a%; obase=16; a | bc pause
896 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 01:42:01.70 ID:bfkyQVXg.net] echo obase=16; %a% | bc でもいい
897 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 07:47:11.80 ID:bfkyQVXg.net] set /a なら値は高々32ビットだよね bc は不要かも cmd /c exit /b %a% echo %=ExitCode%
898 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 10:43:07.05 ID:LvB8fWz+.net] ダントツ遅いが powershell -c "'{0:x}' -f 255"
899 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 10:45:53.90 ID:CXcliooi.net] obaseとかbcとか知らないことがいっぱい出ているな
900 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 11:33:23.34 ID:RIaxNIcl.net] 888
901 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 13:09:13.02 ID:ZzUgbaoD.net] わざわざバッチでやるってことを理解してないアホがいる pythonでも入れてろゴミ
902 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 13:12:16.30 ID:P7NcnZ58.net] batだけで計算しても理解はされないだろうよ
903 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 15:55:27.20 ID:bfkyQVXg.net] >>885 はバッチだけだよ もし桁数が多いのをやりたいなら 過去のスレを探したらバッチがあるよ
904 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 18:11:09.86 ID:5WL5LWhS.net] set /a n=1194684 if "%n%"=="0" set "r=0" &goto :END setlocal enabledelayedexpansion set HEX=0123456789abcdef set /a "a=n&0xf, b=n>> 4&0xf, c=n>> 8&0xf, d=n>> 12&0xf, e=n>> 16&0xf, f=n>> 20&0xf, g=n>> 24&0xf, h=n>> 28&0xf" set r=!HEX:~%h%,1!!HEX:~%g%,1!!HEX:~%f%,1!!HEX:~%e%,1!!HEX:~%d%,1!!HEX:~%c%,1!!HEX:~%b%,1!!HEX:~%a%,1! :DEL_PADZERO if %r:~0,1% equ 0 set "r=%r:~1%" &goto :DEL_PADZERO endlocal &set r=%r% :END echo 0x%r% pause INT32の範囲で良いならバッチではこういうバカっぽいのが結局1番速いんじゃね? レスアンカーが多過ぎと怒られたから右シフトの右にsp入れてる
905 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:27:14.02 ID:bfkyQVXg.net] 話変わるけど右シフトのすぐ右の数字は危険だよね アンカーに解釈されるので2chで数値が変わる場合があるんだよ
906 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:42:20.46 ID:AXmcGRlR.net] >>885 ,886,892 ありがとうございました powershellは2回目以降だとそんなでも無いですが初回はどうしても遅くなるみたいですね >>881-884 readline5.dll というのを落としてbcと同じ場所に置くことで動きました 日本語ヘルプ(https://linuxjm.osdn.jp/html/GNU_bc/man1/bc.1.html)が凄く助かりました! echo sqrt(2) | bc -l echo scale=10; 4*a(1) | bc -l とかバッチに無い計算が出来て感動。面白かったのですがパイプで式を渡す時""で括れないので^&|などのメタ文字を echo 8^^^^2 | bc echo 8^^^&^^^&2 | bc とか^エスケープしなければならないのが使いにくいのと scaleで小数点以下桁数指定出来るのは良いのですが最下桁が四捨五入でも切り捨て切り上げでも無く変な値になったりとかが 惜しい感じですね エスケープはファイルにして読ませれば良いし最下桁は自力で切り捨てれば良いだけですのでいずれ何かで役立つかも ありがとうございました
907 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 09:18:41.04 ID:WQSCizyX.net] エスケープは入力要求メッセージ(末尾改行無し)を使って回避する方法がある。 <nul set /p "=8^2" | 〜 ※もし行(末尾に改行)が必要なら <nul set /p "=8^2" | more | 〜
908 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:55:51 ID:obFo1BRC.net] >>894 set "a=8^^2" & echo %%a%% | bc
909 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 07:30:05.93 ID:oa53tMxs.net] >>895 目からウロコなTips set /p <nul="8^2" | more | bc で行けました moreの代わりにfindやfindstrなどパイプで受け取って改行付加して吐けるコマンドなら使えるっぽい。他には以下とか (set /p <nul="8^2"&echo=) | bc set /p の改行無しecho の用法は知っていたんだけどこの局面で使える事に思い付けなかったのが悔しい
910 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 20:26:36.34 ID:hShn1n51.net] コマンドからリモートホスト名とそのIPを取得出来ますか?
911 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:49:48.16 ID:WvMv+Qf8.net] nslookup … DNSで調べる ping … hostsとか諸々込みで実際にどう名前解決されるか nbtstat … NETBIOS名なら netstat … 通信で実際に使ってる自端末と相手のIPアドレス ipconfig … 自端末の諸々 netsh … 自端末の諸々
912 名前:898 mailto:sage [2022/08/14(日) 18:43:42.99 ID:0tA/3KXA.net] 各コマンドのヘルプ見たり試してみたけど良く分からなかった WAN側IPとそのホスト名をコマンドから知れないか?を知りたかったんだけど無理そうですか? nslookupで引数にIP指定すればホスト名は取れるんだけどIPをどうやって知ったら良いものか
913 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 19:35:36.51 ID:R62l2k+7.net] >>900 状況がよくわからん 「WAN側IP」とか言ってるから自宅(自社)のルーターを自宅(自社)のLAN側から知りたいという話?
914 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 19:37:41.23 ID:WvMv+Qf8.net] インターネット上の相手側から見える、自WANのWAN側IPアドレスって事? 例えば自端末がオンラインゲームのホストになる際に相手に教えるIPアドレス。 WAN側機器のWeb管理コンソールとか、 「診断くん」等のWebサービスをスクレイピングすればいいよ。 探せばAPIサービスなんかもあるかもね。 ※Webサービス使うときは利用規約をよく読んでね。 既にIPアドレス知る方法を1つは知ってるようだから、その方法でもいいよ。
915 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 19:49:12.00 ID:3lHTKQ6A.net] ホスト名とは何かという定義が必要だな WEBサーバーなら複数のホスト名(URLのドメインパート)で同じ(時には複数の)サーバーに接続する https://5ch.net/でアクセスされるサーバーなら 5ch.net がホスト名だが 同じサーバーが他のドメインもホストしているなら、他のホスト名も持っていることになる あるサーバーが、接続され得るすべてのホスト名を知りたいと思っても、それは世界中のDNSの勝手なの、 漏れなく調べるためには、世界中のすべてのドメインのレコードを調べる必要があるので、実際には無理。 DNSの逆引きは、それを設定している人が必要な分を登録しているだけなので、すべてとは言い切れない。
916 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 20:04:12.33 ID:zcJ+8Zbe.net] >>900 現在接続形態で多いのが、ルータの下にローカルネットワークでPCが繋がっているというもの この場合、PCからはローカルネットワークが全てでありIPアドレスもローカルIPアドレスが使われる グローバルWAN側のIPアドレスを知りたいのなら ルータにログインしてアクセスして情報を貰うか、 webのIPアドレスを教えてくれるサイトから情報を取ることになる つまり>>902 の言うとおり
917 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 20:07:44.49 ID:0tA/3KXA.net] そうです。自分のインターネット側のIP ルーター管理画面のWAN側IPです これをコマンド(LAN側のマシン)から調べる方法が無いのかなって > Webサービスをスクレイピング これってコマンドでやる方法あります? NECのなんですけどルーター管理画面から取れるのかな? ちょっとググったりしてみましたけど簡単なバッチくらいしか使えない自分にはハードル高いかも
918 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:44:27.94 ID:zcJ+8Zbe.net] >>905 curl.exeを持ってこないといけないけど 診断君のスクレイピングだと @echo off curl.exe taruo.net/e/ -s -o "res.tmp" for /f "tokens=*" %%i in ('findstr "<TD><tt>" res.tmp') do set host=%%i&goto :get_ip :get_ip for /f "skip=1 tokens=*" %%i in ('findstr "<TD><tt>" res.tmp') do set ip=%%i&goto out goto :eof :out for /f "delims=<> tokens=3" %%i in ("%host%") do set host=%%i for /f "delims=<> tokens=3" %%i in ("%ip%") do set ip=%%i set ip=%ip:~0,-2% echo HOST NAME = %host% echo IP ADDRESS = %ip%
919 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:55:35.81 ID:zcJ+8Zbe.net] >>905 何も要らないが、powershellを使わないといけない (なおwebアクセスで診断君以外ではtls1.2を有効にしないとダメなことが多い) $res = wget taruo.net/e/ if ($res.content -match "REMOTE_HOST<\/TD>\n<TD><tt>(.+)<\/tt>[\s\S]+?REMOTE_ADDR<\/TD>\n<TD><tt>([.\d]+)" ) { $host_name = $matches[1] $ip_address = $matches[2] } $host_name $ip_address
920 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 00:00:17.27 ID:xwOg3pSS.net] >>906-907 ありがとうございます curl.exe はなぜか 7.55.1.0 が system32に入ってました 参考にルーター管理画面から取得出来ないか試して無理だったら使わせて頂きます
921 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 02:02:49.45 ID:xwOg3pSS.net] お陰様でコマンドから確認出来るようになりました。この度は本当にありがとうございました for /f "skip=301 tokens=4 delims=< " %a in ('curl admin:admin@192.168.0.1/index.cgi/info_main_set -s') do (for /f "skip=3 tokens=2" %b in ('nslookup %a') do @echo %b)&pause pauseからCtrl+Cで止めているのですが、breakはバッチでgotoしないと無理ですよね?
922 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 08:55:40.32 ID:3ogXO4Oz.net] call :ラベル名 で処理を呼び出して exit /b を break として使うこともできるよ
923 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 21:05:50.46 ID:Z47lvB2J.net] >>909 breakしたい、というか302行目だけ欲しいってことかな。 findstrで行番号振って、さらにfindstrで目的の行だけ取るって方法があるよ。 for /f "tokens=4 delims=< " %a in ('curl 〜 -s^| findstr /rn /c:"^"^| findstr /r /c:"^302:"') do
924 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 15:31:14.62 ID:RClv+rPW.net] >>911 for /f "tokens=5 delims=< " %a in ('curl admin:admin@192.168.0.1/index.cgi/info_main_set -s ^| findstr /n "^" ^| findstr "^302:" ') do for /f "tokens=2" %b in ('nslookup %a ^| findstr "名前 Name"') do echo %a : %b ありがとうございます。Ctrl+C する必要無くなりました skip=301付けたままのうっかりミスのせいで上手く動かない原因を文字コードがEUC-JPだからfindstrが機能しないのだと勘違いし文字コードを変換する外部ツールnkf.exe入れたり明後日のことしてハマってました 目的が何行目か決まっている時は最良の方法かもですね 行番号列挙する必要がありますが複数行でも使えますし
925 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 21:14:13.99 ID:S8eeCUJc.net] 文字列の入った変数から、その文字数を高速に取得したいんですが なにか良い方法はありますか? 上限は8189です
926 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 22:59:03.27 ID:OpG+r6e/.net] if "%s:~4095,1%"=="" (4095文字より少ない) else 4095文字よりも多い :4095未満 if "%s:~2048,1%"=="" (2048より少) else 2049以上4095未満 :4095以上 if "%s:~7042,1%"=="" (4095以上7042未満) else 7042以上 こんな感じでifを入れ子にでもサブルーチンにでもしてある程度どの範囲にあるか詰めてからカウントすれば? 8189文字で正常に動くかは忘れた分からん カウントは 遅延展開で if "!s:~%N%,1!"=="" って感じで Nを+1してループさせればいい
927 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 23:07:32.10 ID:S8eeCUJc.net] >>914 ありがとうございます。参考にさせていただきます ちなみに8189はcmdの仕様による限界です
928 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 23:22:13.27 ID:VY6ZsFbR.net] >>913 > 高速に取得したい バッチでやるのはやめた方がいいかと
929 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 23:24:42.08 ID:OpG+r6e/.net] setだかcmdの構文解析だかの引数の文字数上限が8191 (0x1fff) とかで "s=" で2文字必要だから8189とかだったかな 変数名が単一文字で無かったり "" で囲ったりしても使用可能文字数減るはずだし forやifの中で展開出来なかったりしたと思うから 限界探るなら一見使えているように見えてもちゃんと確認しといた方が良いよ
930 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 23:49:06.77 ID:OpG+r6e/.net] 4096 -> 2048 -> 1024 -> 512 -> 256 -> 128 -> 64 -> 32 if で8回くらい判定させればそれなりに速く出来ると思う 256分割。。 オフセットも変数にしてループするとか 512で真だったら /2 偽だったら *1.5 (set /a N=N/2+N) てな感じで
931 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] >>913 set s=abcdefg setlocal enabledelayedexpansion set n=0
932 名前: & if defined s (set /a "n=1<<13" for /L %%i in (12,-1,0) do (set /a "a=n-(1<<%%i)" for %%j in (!a!) do if "!s:~%%j,1!"=="" set n=!a!)) echo !n! [] [ここ壊れてます]
933 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] なるほどなー set n=!a! や set /a "a=n-(1<<%%i)" これがパッと出て来るなんて頭良いですね
934 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 10:26:23.19 ID:+w1wfoOM.net] たとえばファイルサイズを %~z1 でなくfilename.sizeみたいなわかりやすい書き方に する方法はないですか
935 名前:デフォルトの名無しさん [2022/08/28(日) 10:36:37.74 ID:FcIb+N5t.net] バッチファイルにわかりやすい書き方なんてものがあったら、俺の髪はもっと残ってた
936 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 11:08:55.91 ID:CaouF0NP.net] バッチの基本的な考え方としては基本コマンドにこだわらず外部コマンドを呼ぶことだと思う セキュリティ的に外部コマンドは入れられないといった制約があるならこのレガシーツールを使い続けるのは無理がある 現実解のひとつはPowershellのワンライナーを呼ぶことで そうやって少しずつ学んでるうちに段階的にbatを卒業することだと思う
937 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 11:23:21.78 ID:+w1wfoOM.net] >>923 ありがとうございます やはり無理なのか、aliasesなどを使った名案があればいいのに Powershellはコマンド名が長すぎて使う気になれない 外部コマンドやツ-ルを使えば簡単でもセキュリティ的に問題があるかわからないので使いたくない場合がある
938 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 11:41:21.61 ID:3aiLuiYL.net] エイリアスもどきはあるよ マクロファイルに定義を書いておいて一斉に登録することもできる doskey /? あとpowershellにはエイリアスがある
939 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 15:23:54.30 ID:CaouF0NP.net] Powershellは単に慣れと食わず嫌いの問題やね cmdも無数の気持ち悪いルールがあるし現にたかが文字を数えるだけで呪文めいたコードが必要になってる 何にせよ人間慣れれば気にならなくなるもの さすがにあと5年で定年だからプログラミングしなくなりますなんて老人には勧めんけどね コマンドの長さとエイリアスについては 俺はGet-ChildItemはダルいからdirやlsと書くし ForEach-Objectの代わりに%と書き続けてる
940 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 15:36:49.18 ID:3aiLuiYL.net] powershellの弱点は初期起動に時間が掛かるという点だね 通常的にpowershellを使ってるならいいけど、 それこそ特定の処理だけたまに使うという人にはそこがネックになる そういう場合はもうオブソリュートだがWSHがいい仕事をする
941 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 17:28:34.01 ID:hYNZdTyV.net] >>921 わかりやすい変数に代入すれば?
942 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 19:39:30.66 ID:TtkhtxSa.net] 底辺ドカタがアイデンティティ護ろうと必死だけど必死に見られたくない虚栄心とのせめぎ合いが垣間見えてワラw
943 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 19:49:06.93 ID:hYNZdTyV.net] エイリアス無いし batを使いたいなら騙しながらやるしかないだろ
944 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 03:05:26.48 ID:Rm8LZ6WJ.net] >>924 ほんとはvbsが起動も速度も速い上にバッチやps程変な癖もなくていわゆるVB脳程度の知識でそこそこのものが手軽に書けるんだよ ただこの板にあるスレが一言で言えば気持ち悪いから誰も触れないのよ よくvbsはオワコンて言われるけど少なくとも2029年までは標準で使えるから安心していいよ
945 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 04:54:03.93 ID:DAjO1ugz.net] @echo off &setlocal call :LEN echo %errorlevel% call :LEN a echo %errorlevel% call :LEN ab echo %errorlevel% call :LEN abcde echo %errorlevel% call :LEN "abcdefg" echo %errorlevel% pause &exit /b :LEN setlocal enabledelayedexpansion set "s=%~1" if not defined s goto :EOF set /a "n=8192" &rem "1<<13" for /L %%i in (12,-1,0) do set /a "a=n-(1<<%%i)" &echo n:!n!, a:!a! &for %%j in (!a!) do if "!s:~%%j,1!"=="" set n=!a! exit /b %n% >>919 さんのこれ凄いね 関数っぽく使えるようサブルーチン化と変数確認のechoさせてみたけど バッチでの文字数カウントとしては最強じゃね?
946 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 07:10:34.83 ID:ZvttE7Ov.net] 変数に代入出来るのが8000でも set/pで入力出来るのは1000ほどしかないな 文字数が多いと色々と落とし穴ありそう
947 名前:デフォルトの名無しさん mailto:sage [2022/08/30(火) 16:27:10.19 ID:2X2Lv8NW.net] >>932 更に分かりやすくしてみた for /L %%i in (12,-1,0) do set /a "b=1<<%%i, a=n-b" &set /p<nul="a:[!a!] = n:[!n!] - (1<<%%^i:[%%i]):[!b!] " &for %%j in (!a!) do if "!s:~%%j,1!"=="" (set "n=!a!" &echo 文字:無い) else echo 文字:在る
948 名前:デフォルトの名無しさん mailto:sage [2022/08/30(火) 20:51:26.64 ID:Qtk7w0l/.net] もう質問者はいないぞ
949 名前:デフォルトの名無しさん mailto:sage [2022/08/30(火) 23:17:38.91 ID:+Bm8wCSm.net] 素人なんだけど >>919 みたいなのってプログラマだったら知っていて当然の定番のロジック?アルゴリズム?だったりするん?
950 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 00:08:53.66 ID:F2h2Wpm0.net] >>936 やってることはただの2分探索だよ アルゴリズムの本とか一通り読んでれば思いつくよ 特にシフト使ったちまちましたことは組み込みプログラマが得意だろう
951 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 05:05:19.96 ID:I3t0py3T.net] >>936 アルゴリズム自体はまあ知ってて当然レベル それをバッチで実装するのはなかなか凄いと思う
952 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 06:19:56.53 ID:IktOvXlL.net] 個人的にはforの入れ子がおもしろい。そんな方法があるのかと思った。 普通そこはcallを考えるけど、そうすると速度が落ちるのかな
953 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 20:20:14.08 ID:TgQJCwr4.net] 言語にっよっては文字数を数える関数とかがあるけど、こういう手法を駆使してるん?
954 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 21:42:17.85 ID:/4IK1Kkc.net] %%iをカウントダウンさせて変数一つ省略させてるのが美しいわ
955 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 23:00:05.56 ID:dYVvh+jC.net] >>940 頭から数えるか、文字列型に文字数の情報も持たせてる x文字目を1文字切り出して有るか無いかっていうのは結局言語側で文字数わかってないとだめなわけで
956 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 23:03:12.74 ID:FwIzrDsl.net] 可変長の文字コードが一般的だから、先頭から数えないと文字数はわからない
957 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 23:25:40.84 ID:8OAd82SA.net] 942の言う通り言語や型によっては文字数を予め持たせてるよ 最初に一度だけカウントしてメモっておけば何度も数え直す必要がない
958 名前:デフォルトの名無しさん mailto:sage [2022/08/31(水) 23:41:16.72 ID:IktOvXlL.net] C言語のstrlenだと単純に先頭から0を探すだけ 末尾以降のメモリは0とは限らない。ゴミだらけ
959 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 05:31:13.24 ID:dRjt3+vQ.net] >>944 文字数を保持してる言語ってあるの? たいていバイト数だと思ったけど
960 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 10:54:06.41 ID:KDf3jCCr.net] たぶんだけど 内部表現がUTF-8みたいな可変長(Perl等)ならバイト数じゃなくて文字数で持ってると思う。 内部表現がUTF-16みたいな固定長(.NET等)でバイト数÷2が文字数になる言語だと、 「取得毎に÷2(右シフト)の負荷」をとるか 「常に文字数保持のメモリ消費」をとるかは言語による気がする。※まあ後者かな。
961 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 11:14:11.70 ID:BOpcWEhd.net] if definedはあるが、if not definedはエラーになることを発見した
962 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 11:34:31.15 ID:KDf3jCCr.net] ならんが
963 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 12:10:09.24 ID:BOpcWEhd.net] >>949 すみません、ミスでした おかしいな
964 名前:デフォルトの名無しさん [2022/09/01(木) 14:31:17.40 ID:EyFcbtIt.net] 初心者です [曲名].mp3 の様に 曲名をカッコで囲んでファイル名を出力する方法はどうしたらよいのでしょうか? -o "%%(title)s.%%(ext)s" ここの()を[]に変えてもダメでした お時間ある方いらっしゃいましたらよろしくお願い致します。
965 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 14:33:44.02 ID:5NMGBymZ.net] 多分こっちのスレで聞いた方がいい 【DL】動画の保存方法総合スレ【アダルト禁止】part51 https://egg.5ch.net/test/read.cgi/streaming/1654911933/
966 名前:デフォルトの名無しさん [2022/09/01(木) 14:37:30.33 ID:EyFcbtIt.net] 952さん 教えてくれてありがとうございます 失礼いたしました
967 名前:デフォルトの名無しさん [2022/09/01(木) 14:41:09.20 ID:EyFcbtIt.net] 教えて頂いた所は書き込みできませんでした><;
968 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 14:42:55.59 ID:5NMGBymZ.net] 今出先だから試せないけど多分こうかな -o "[%%(title)s].%%(ext)s"
969 名前:デフォルトの名無しさん [2022/09/01(木) 14:52:40.78 ID:EyFcbtIt.net] 599さん出来ました♪ 親切に教えてくれてありがとうございました 感謝です(*- -)(*_ _)ペコリ
970 名前:デフォルトの名無しさん [2022/09/01(木) 14:53:42.59 ID:EyFcbtIt.net] 955さんでした...ごめんなさい
971 名前:デフォルトの名無しさん mailto:sage [2022/09/01(木) 21:32:28.04 ID:P4dKpTai.net] 文字列処理は、Ruby で書いて、 コマンドプロンプト・Power Shell から呼び出す これが間違いない。 バグる事もない 日本の人工衛星でも、文字列処理の部分を組み込みのmruby で作ったりする。 こういう処理をCで作ると、ややこしくてバグるから VBS, WSH のピッコロ大魔王は、すごい技術者だよ。 スクレイピングでも、Rubyのクラス・モジュールみたいに、VBScript で作ったりする VBS から、.NET とか呼び出せるのか
972 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 06:32:40.82 ID:s4Jk55Dy.net] たかがその程度でそんなことする必要ない
973 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 07:22:53.60 ID:m72Ydqk7.net] RubyってWindowsデフォで処理できんの?Pythonは?
974 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 09:55:08.52 ID:ly4TfMW8.net] >>960 動くよ 有料オプションなんていらない
975 名前:デフォルトの名無しさん mailto:sage [2022/09/02(金) 12:18:58.31 ID:m72Ydqk7.net] それいいな Ruby置いておいて.batから呼び出すの超楽じゃん
976 名前:デフォルトの名無しさん [2022/09/03(土) 13:13:17.18 ID:JK72C2wT.net] mp3をダウンロードして128kにするバッチファイル教えてもらえませんか? yt-dlpとffpmeg使って色々と試してみてもうまくいきません ダウンロードしたあとでしたら名前が分かるのでこれで出来たのですけど ffmpeg -i input.mp3 -vcodec copy -ab 128k output.mp3
977 名前:デフォルトの名無しさん [2022/09/03(土) 13:56:15.90 ID:91ZlUxrs.net] https://gigazine.net/news/20220624-yt-dlp-download-sections/
978 名前:958 mailto:sage [2022/09/03(土) 15:43:23.43 ID:X5iiwVOT.net] >>960 ただし、Python, Ruby などのウェブ系言語は、 インターネット・Linux・UTF-8 用に作られているので、 Windows・shift-jis(CP932)の日本語でバグるかも だから、Linux用のソースコードを、 MSYS2/MinGW でコンパイルして、Windows用にしたものよりも、 WSL2 で、Linuxを動かしたものの方が安全 これは、UTF-8をCP932に変換せず、そのままUTF-8を使っているから安全 漏れが作った感想では、PowerShell, VBScript よりも、 圧倒的に、Rubyが作りやすい。 Rubyの方が、本なども多いし
979 名前:デフォルトの名無しさん mailto:sage [2022/09/06(火) 21:18:12.82 ID:RxqiahQJ.net] pythonでも、いけるのか。うむ。
980 名前:デフォルトの名無しさん mailto:sage [2022/09/10(土) 02:55:46.45 ID:jyBCEVh6.net] あっというまにうんこうめ
981 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 18:11:08.37 ID:sXKbUVWc.net] パイプから文字列受け取ってsetする方法って echo a|for /f %%a in ('more') do set a=%%a みたいにforでやるか一旦ファイルに書き出すしか無い? echo a| set /p a="" <pipe みたいにリダイレクトに繋げてくれるかパイプで流れてくるものに%$_%とか一時変数っぽいものに割り当ててくれたら良いのに rg.exeが便利すぎて遊んでてふと思った
982 名前:デフォルトの名無しさん mailto:sage [2022/09/12(月) 23:31:40.49 ID:JnviOvBd.net] rgがcmdで使い物にならなくてショック パイプで受け取る分には-E sjisで出来るんだけどrgからパイプで次に繋げたりリダイレクトで出力するとascii以外の文字は化ける これcmd上だとどうにもならない? https://gith
983 名前:ub.com/BurntSushi/ripgrep/blob/master/FAQ.md#pipe-non-ascii-windows [] [ここ壊れてます]
984 名前:デフォルトの名無しさん mailto:sage [2022/09/13(火) 10:43:09.25 ID:C/JjoHd5.net] 文字コードの問題なら 一旦nkf32でも中継させて文字コード変換して読み直すとか?
985 名前:デフォルトの名無しさん mailto:sage [2022/09/13(火) 13:50:58.24 ID:8ckY0WFW.net] chcp 65001 して全部 utf8 でやっちゃう utf8 のバッチファイルで行末が2バイト文字だとエラーに なるんで、そういうのは行末に . とかで回避
986 名前:デフォルトの名無しさん mailto:sage [2022/09/13(火) 19:02:32.59 ID:BFM47HY2.net] >>970 試してみたら行けました でも入力を指定出来ないのがちょっと不安、と思っていたら期待される入力のオプションありました 現状それしか無いかもですね rgを多段に使う場合は最初と最期だけ変換すればrgの-Eオプションも省けて良いかも でも手軽さにケチ付いたみたいなのが引っかかります。。 >>971 utf-8だと機能しないコマンドもあるのでその確認がちょっと大変です お二方ともレスありがとうございました
987 名前:デフォルトの名無しさん mailto:sage [2022/09/13(火) 20:01:05.07 ID:gJ1f0QwF.net] ちょっと大変どころじゃないけど UTF-8とかの時点でPowershell検討しなよ
988 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 02:23:02.40 ID:ifExYD0i.net] 分かっていると思うけど nkf等で変換しても変換不可の文字が欠落するので注意
989 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 02:38:59.13 ID:d7brrjLd.net] えっ?いや全然分かってないです sjis → utf-8 → sjis で欠落する文字って在るのでしょうか? 半角カナはxオプションで維持可能でした
990 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 02:51:18.58 ID:ifExYD0i.net] 元がsjisならいいと思いますたぶん
991 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 09:41:51.82 ID:t44Y6QQe.net] >>974 そう、完璧版nkfがあるといい
992 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 09:45:41.31 ID:bQ7RTOjb.net] コンソールアプリでパイプの時点で色々諦めなきゃね rg.exeとやらはwinforms版はないの?オプソだよね?
993 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] 完璧版nkfとは、どのようなものになるのでしょうか? UTF-8、UTF-16対応? 文字コードによって存在する文字(というかコード?)にどう対応すればよいのでしょうね?
994 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net] フォルダ a:\xxx を a:\yyy の下に移動して a:\yyy\xxx とするのはどうやりますか?
995 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 19:24:16.59 ID:ifExYD0i.net] move
996 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 19:57:29.62 ID:XL8H98jz.net] move a:\xxx\*.* a:\xxx\yyy
997 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 19:59:06.71 ID:XL8H98jz.net] 間違えた。 x move a:\xxx\*.* a:\xxx\yyy o move a:\xxx\*.* a:\yyy\xxx
998 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 20:02:13.40 ID:XL8H98jz.net] 次スレを立てて見ようと思います。 失敗したら、あとのかたお願いします。
999 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 20:05:48.88 ID:XL8H98jz.net] 次スレです。 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50 後の埋めは、よろしくお願いします。
1000 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 20:10:50.57 ID:y9++92To.net] move a:\xxx a:\yyy で行けないかな ダメならxcopyかrobocopyを使う
1001 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 22:44:29.10 ID:XL8H98jz.net] rem フォルダyyyが無い場合、フォルダyyyを作成。 md a:\xxx\yyy rem フォルダxxx下にファイルが有る場合。 move a\xxx\*.* a:\xxx\yyy
1002 名前:デフォルトの名無しさん mailto:sage [2022/09/14(水) 22:45:56.57 ID:XL8H98jz.net] コピーの場合、 move a\xxx\*.* a:\xxx\yyy のmoveをcopyにして下さい。
1003 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 07:10:21.66 ID:PHto6B20.net] md a:\yyy if not exist a:\yyy\xxx (move a:\xxx a:\yyy) else ( if exist a:\yyy\xxx\nul ( move /-y a:\xxx\* a:\yyy\xxx for /d %%i in (a:\xxx\*) do move "%%i" a:\yyy\xxx rd a:\xxx )) 既存のため移動できない物はa:\xxxに残るので名前変更して再実行
1004 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:53:39.30 ID:EPORcPim.net] それで、>>980 さんは、解決したのでしょうか。 後は、埋めてしまいますよ。
1005 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:54:46.51 ID:EPORcPim.net] 次スレ 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50
1006 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:55:30.56 ID:EPORcPim.net] 次スレ 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50
1007 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:55:52.67 ID:EPORcPim.net] 次スレ 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50
1008 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:56:19.20 ID:EPORcPim.net] 次スレ 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50
1009 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:56:42.68 ID:EPORcPim.net] 次スレ 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50
1010 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:57:04.06 ID:EPORcPim.net] 次スレ 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50
1011 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 12:57:29.87 ID:EPORcPim.net] 次スレ 【.cmd】 バッチファイルスクリプト %15 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1663153441/l50
1012 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 13:08:18.56 ID:EPORcPim.net] 埋め
1013 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 13:08:47.98 ID:EPORcPim.net] 埋め
1014 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 13:09:27.18 ID:EPORcPim.net] また、いつの日にか、相まみえん。
1015 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 761日 6時間 9分 1秒
1016 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています