[過去ログ]
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net (1002レス)
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1489207631/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
318: デフォルトの名無しさん [sage] 2018/01/03(水) 21:17:45.06 ID:NAv6VFfd >>317 wsfの手があったか、あとjsでもスクリプトエンコードで書けばなんとかなるね http://mevius.5ch.net/test/read.cgi/tech/1489207631/318
319: デフォルトの名無しさん [sage] 2018/01/13(土) 16:23:41.90 ID:t3TbTPGI powershellで似たような事はできませんか? 1ファイルにしたくて http://mevius.5ch.net/test/read.cgi/tech/1489207631/319
320: デフォルトの名無しさん [sage] 2018/01/13(土) 16:32:17.66 ID:9pJBMU57 >>319 【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net https://mevius.5ch.net/test/read.cgi/tech/1480109402/ http://mevius.5ch.net/test/read.cgi/tech/1489207631/320
321: デフォルトの名無しさん [] 2018/01/18(木) 18:41:19.43 ID:lAsosfYH どうしても分からないので質問致します。 @echo off @rem バッチファイルのディレクトリに移動 cd /d %~d0%~p0 set USR_INPUT_STR1=https://www.openrec.tv/live/fKGMub0cd6j @rem 引数有無と引数名チェック if "%USR_INPUT_STR1%"=="" goto ERROR echo;%USR_INPUT_STR1%|findstr /R /C:"^http" /C:"openrec" >NUL||(echo "%1" を処理できません) && goto ERROR @rem URLのアドレスとHTMLを環境変数へ設
定 set ADDR=%USR_INPUT_STR1% for %%I in (%USR_INPUT_STR1%) do set HTML=%%~nxI @rem HTMLダウンロード curl -L --max-redirs 10 -R -O %ADDR% if not %ERRORLEVEL%==0 goto ERROR @rem Shift-JISに文字コード変換 nkf -s --overwrite %HTML% http://mevius.5ch.net/test/read.cgi/tech/1489207631/321
322: デフォルトの名無しさん [] 2018/01/18(木) 18:41:39.14 ID:lAsosfYH set TARGET=%TARGET:playlist=chunklist% @rem ffmpegで動画吸い出し ffmpeg -c copy "%TITLE%.ts" -i "%TARGET%" @rem 最後にcurlで出力したソースファイルを削除 @rem for /R %%f in (*.) do del /Q "%%f" pause exit :ERROR echo 引数が無効のため処理できませんでした pause exit このようなbatファイルを作ったのですが、どうしても最後に sourcefile=https://station303.openrec.tv/live1/667d4bef5cb4af8db6b9198cab7b3148e957e47
7/chunklist.m3u8: Invalid argument と無効な引数と言われてしまい動画の吸い出しが出来ません 完全に手詰まりなため、丸投げにはなってしまいますがご教授いただければと思います よろしくお願いします http://mevius.5ch.net/test/read.cgi/tech/1489207631/322
323: デフォルトの名無しさん [sage] 2018/01/18(木) 19:11:35.69 ID:r+5+UL4/ >>322 とりあえず最初の行を rem @echo off にしてどこでエラーになってのか確認しろよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/323
324: デフォルトの名無しさん [sage] 2018/01/18(木) 19:15:53.38 ID:pm/tv2ru >>322 これ途中の処理抜けてない? TARGETにURLが入らないんだけど http://mevius.5ch.net/test/read.cgi/tech/1489207631/324
325: デフォルトの名無しさん [sage] 2018/01/18(木) 19:34:30.33 ID:pm/tv2ru 170のやつを適当に書き直したら動いたよ for /F tokens^=2^ delims^=^" %%I in ('type %HTML%^|find /I "data-sourcefile"') do set "TARGET=%%~I" http://mevius.5ch.net/test/read.cgi/tech/1489207631/325
326: デフォルトの名無しさん [] 2018/01/18(木) 19:58:03.19 ID:lAsosfYH >>322の最初が抜けてました・・・ @rem HTMLから文字列抽出 for /F "tokens=2 delims=<>| " %%I in ('type %HTML%^|findstr /R /C:"<title>"') do set TITLE=%%~I for /F "tokens=* delims=data-file= " %%I in ('type %HTML%^|find /I "playlist.m3u8"') do set TARGET=%%~I http://mevius.5ch.net/test/read.cgi/tech/1489207631/326
327: デフォルトの名無しさん [] 2018/01/18(木) 20:06:19.33 ID:lAsosfYH >>325 ありがとうございます・・・ エラーを見たのですが、なぜかsourcefile=が付いてしまっていました 何度もありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1489207631/327
328: デフォルトの名無しさん [sage] 2018/01/29(月) 01:16:37.30 ID:s5lQXlw3 echo abc 1>x1 1>x11 2>x2 3>x3 とするとDOS窓が応答しなくなった x11 x2 x3 ファイルができるが x1ファイルはできない http://mevius.5ch.net/test/read.cgi/tech/1489207631/328
329: デフォルトの名無しさん [sage] 2018/01/29(月) 14:21:26.57 ID:e8Iu9+Yp compフォルダ配下にはa,b,c,…ってフォルダがあって、 そのフォルダの中にはzipとrarの圧縮ファイルがある compopenってフォルダを作って、compの中のフォルダ階層は変えないで、compopenフォルダ内のaやb,cのフォルダにそれぞれすべて展開させたいときってどうするの? zipやrar毎にフォルダ作って展開させたい D:/ ├comp/ │ └ a/ │ └ 111.zip │ └ 222.zip │ └ b/ │ └ xx1.rar │ └ xx2.rar │ └ c/ │ └ ttt.zip │
└ rrr.rar D:/ ├compopen/ │ └ a/ │ └ 111/ │ └ 222/ │ └ b/ │ └ xx1/ │ └ xx2/ │ └ c/ │ └ ttt/ │ └ rrr/ http://mevius.5ch.net/test/read.cgi/tech/1489207631/329
330: デフォルトの名無しさん [sage] 2018/01/29(月) 15:15:09.99 ID:LZ9wDs2K >>329 >>12-19の方法で相対パスを取得すれば出来ると思うよ http://mevius.5ch.net/test/read.cgi/tech/1489207631/330
331: デフォルトの名無しさん [sage] 2018/01/29(月) 16:22:04.20 ID:LZ9wDs2K 自分用に書いたbatを流用してみた 多分こんな感じで動くはず https://pastebin.com/zEpvpdCa http://mevius.5ch.net/test/read.cgi/tech/1489207631/331
332: デフォルトの名無しさん [sage] 2018/01/30(火) 00:28:24.66 ID:fZrZLUfh >>329 set "a=D:\comp" & set "b=D:\compopen" setlocal enabledelayedexpansion for /L %%i in (4,1,1000) do if "!a:~%%i,1!"=="" set "c=%%i" & goto x :x endlocal & set "c=%c%" for /r "%a%" %%i in (*.zip *.rar) do set "d=%%~dpni" & set "e=%%~i" & call :y goto :eof :y setlocal enabledelayedexpansion 7z x -o"!b!!d:~%c%!&qu
ot; "!e!" http://mevius.5ch.net/test/read.cgi/tech/1489207631/332
333: 330 [sage] 2018/01/30(火) 04:04:55.14 ID:I+jPXl6+ >>332 なるほど 自分のは冗長に書きすぎてたね http://mevius.5ch.net/test/read.cgi/tech/1489207631/333
334: デフォルトの名無しさん [sage] 2018/01/30(火) 16:28:50.07 ID:/nodnUUg >>329 使い回しあんまり考えなければ -------- ここから set path=C:\Program Files\7-Zip;%path% cd /d D:\comp for /f "usebackq delims=" %%i in (`dir /ad /s /b`) do ( echo,"%%~i" set "tmppath0=%%~i" call set "tmppath1=D:\compopen%%tmppath0:~7%%" pushd "%%~i" call 7z.exe x *.* -spe -bso0 -o"%%tmppath1%%\*" 2>>D:\compopen\errlog.txt popd ) -------- ここまで マズいフォ
ルダ(パス)名が無いことを前提に、もろもろ 7-Zip に良きにはからってもらう http://mevius.5ch.net/test/read.cgi/tech/1489207631/334
335: デフォルトの名無しさん [] 2018/01/30(火) 17:10:39.08 ID:25OUwAYA >>332 >>334 ありがとうございます! 150GBくらいあるから、まだ展開し終えてないけど、 動き出しました。 実際のcompの中のa,b,c,・・・フォルダの中のzipやrarの名前は、 今のところ、下記みたいにフォルダの文字列含んでて、階層を上にしてもよかったかなと思いつつ、 例外も出てくるかもしれないので、このまま走らせてみます。 しっかり解凍しだしてフォルダ生成してくれてます。 D:/ ├comp/ │ └ a/ │ └ a111.zip │ └ a222.zip │
└ b/ │ └ xx1b.rar │ └ xx2b.rar │ └ c/ │ └ cttt.zip │ └ crrr.rar http://mevius.5ch.net/test/read.cgi/tech/1489207631/335
336: デフォルトの名無しさん [sage] 2018/01/31(水) 00:35:03.40 ID:ah9e2u9N そもそも、そんな複雑な手続きには、PowerShell, Ruby などを使えw http://mevius.5ch.net/test/read.cgi/tech/1489207631/336
337: デフォルトの名無しさん [sage] 2018/02/03(土) 09:54:54.05 ID:y+J4EMEq コマンドプロンプトの仕様についてだけど、遅延展開ってデフォでONじゃダメだったのかな? あれ打ち込むのマンドクサ('A`) http://mevius.5ch.net/test/read.cgi/tech/1489207631/337
338: デフォルトの名無しさん [sage] 2018/02/05(月) 04:53:11.12 ID:j3KUW6ez 1.test.exeという実行ファイルがある。 2.test.exeのフルパスは必要に応じて「test.exeをShift+右クリック」→「パスをコピー」して変数testExeに格納してもらう。 このフルパスには"D:\a bc\test.exe"のように空白が含まれることがあるとする。 3.FOR文でこのtest.exeを--helpオプションつきで実行し、結果からfindstr&setしたい。 ---作成バッチ--- @echo off cd /d %~dp0 set testExe="D:\a bc\test.exe" FOR /F "tokens=3"
; %%a IN ('%testExe% --help ^| findstr "TargetStr"') DO ( set kekka=%%a ) @echo %kekka% pause ---実行結果--- 'D:\a' は、内部コマンドまたは外部コマン ド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ---解1--- testExeを設定する際、全体をダブルクォートで囲むのではなく、 空白を含むフォルダだけをダブルクォートで囲むようにする。 set testExe=D:\"a bc"\test.exe 解1はtestExeの設定が地味に面倒になってしまうので回避したいのですが、何か良い方法はないでしょうか? http
://mevius.5ch.net/test/read.cgi/tech/1489207631/338
339: デフォルトの名無しさん [sage] 2018/02/05(月) 05:04:15.80 ID:j3KUW6ez >>338 追記 パスに空白を含む場合も問題ですが、 set testExe="D:\abc\test.exe" のように空白を含まない場合には ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。 と言われてエラーになるので、それも含めてなんとかしたいという点を書き忘れていました。 「FOR文でフルパスでコマンドを実行したい場合、どうすればよいのでしょう」というのが根本的な質問です。 http://mevius.5ch.net/test/read.cgi/tech/148920
7631/339
340: デフォルトの名無しさん [sage] 2018/02/05(月) 05:55:25.28 ID:j3KUW6ez すみません。>>338-339ですが、直接フルパスで実行するのではなくフォルダに移動して実行することで一応解決しました。 --- @echo off cd /d %~dp0 set testExe="D:\a bc\test.exe" FOR /F "tokens=1 delims=" %%I IN (%testExe%) DO ( IF "%%~nxI"=="test.exe" ( pushd "%%~dpI" FOR /F "tokens=3" %%M IN ('.\%%~nxI --help ^| findstr "TargetStr"') DO ( set kekka=%%M ) popd ) ) @e
cho %kekka% pause --- 問題点や、もっとスマートな方法があれば、教えていただけると助かります。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/340
341: デフォルトの名無しさん [sage] 2018/02/05(月) 08:19:13.38 ID:ETXmgzVd >>338 @echo off cd /d %~dp0 set testExe="D:\a bc\test.exe" for /f "tokens=3" %%a in ('start /wait /b "" %testExe% --help ^| findstr "TargetStr"') DO ( set kekka=%%a ) @echo %kekka% pause http://mevius.5ch.net/test/read.cgi/tech/1489207631/341
342: デフォルトの名無しさん [sage] 2018/02/05(月) 08:24:05.58 ID:chwOG0ZE >>338 自分もこの問題に直面して同じ解決策とったんだけどこれって何が原因でこうなるの? http://mevius.5ch.net/test/read.cgi/tech/1489207631/342
343: デフォルトの名無しさん [sage] 2018/02/05(月) 10:47:37.64 ID:ETXmgzVd こっちのがいいかも 前に似たようなネタがあったような set testExe="D:\a bc\test.exe" for /f "tokens=3" %%a in ('cmd /s /c "%testExe% --help | findstr "TargetStr""') do ( http://mevius.5ch.net/test/read.cgi/tech/1489207631/343
344: デフォルトの名無しさん [sage] 2018/02/05(月) 11:16:40.07 ID:j3KUW6ez >>341 できました!なるほど、startを使えばよかったのですね・・・。ありがとうございます。 >>342 なんなんでしょうね。仕組みがよくわからないです・・・。どなたか解説を・・・。 http://mevius.5ch.net/test/read.cgi/tech/1489207631/344
345: デフォルトの名無しさん [sage] 2018/02/05(月) 11:23:08.71 ID:ETXmgzVd やっぱり >>343 の cmd はダメだな testExe や TargetStr の中のスペースがデリミタ扱いされる スペースが2個以上続くと誤動作する >>341 の start がいい http://mevius.5ch.net/test/read.cgi/tech/1489207631/345
346: デフォルトの名無しさん [sage] 2018/02/05(月) 11:37:48.40 ID:j3KUW6ez >>343 >>345 重ねてありがとうございます。 cmdの場合は以下でうまくいくようです。 set testExe="D:\a bc\test.exe" FOR /F "tokens=3" %%a IN ('cmd /c %testExe% --help ^| findstr "TargetStr"') DO ( http://mevius.5ch.net/test/read.cgi/tech/1489207631/346
347: デフォルトの名無しさん [sage] 2018/02/05(月) 13:08:35.91 ID:Emu9UBTE 括弧の中の最初と最後の引用符が削除される? http://mevius.5ch.net/test/read.cgi/tech/1489207631/347
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 655 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s