for /F tokens^=2^ delims^=^" %%I in ('type %HTML%^|find /I "data-sourcefile"') do set "TARGET=%%~I" 0326デフォルトの名無しさん2018/01/18(木) 19:58:03.19ID: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 0327デフォルトの名無しさん2018/01/18(木) 20:06:19.33ID:lAsosfYH>>325 ありがとうございます・・・ エラーを見たのですが、なぜかsourcefile=が付いてしまっていました
https://pastebin.com/zEpvpdCa0332デフォルトの名無しさん2018/01/30(火) 00:28:24.66ID: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%!" "!e!" 03333302018/01/30(火) 04:04:55.14ID:I+jPXl6+>>332 なるほど 自分のは冗長に書きすぎてたね 0334デフォルトの名無しさん2018/01/30(火) 16:28:50.07ID:/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 ) -------- ここまで
---作成バッチ--- @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
--- @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 ) ) @echo %kekka% pause ---
問題点や、もっとスマートな方法があれば、教えていただけると助かります。 0341デフォルトの名無しさん2018/02/05(月) 08:19:13.38ID: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 0342デフォルトの名無しさん2018/02/05(月) 08:24:05.58ID:chwOG0ZE>>338 自分もこの問題に直面して同じ解決策とったんだけどこれって何が原因でこうなるの? 0343デフォルトの名無しさん2018/02/05(月) 10:47:37.64ID:ETXmgzVd こっちのがいいかも 前に似たようなネタがあったような
set testExe="D:\a bc\test.exe" for /f "tokens=3" %%a in ('cmd /s /c "%testExe% --help | findstr "TargetStr""') do ( 0344デフォルトの名無しさん2018/02/05(月) 11:16:40.07ID:j3KUW6ez>>341 できました!なるほど、startを使えばよかったのですね・・・。ありがとうございます。
set testExe="D:\a bc\test.exe" FOR /F "tokens=3" %%a IN ('cmd /c %testExe% --help ^| findstr "TargetStr"') DO ( 0347デフォルトの名無しさん2018/02/05(月) 13:08:35.91ID:Emu9UBTE 括弧の中の最初と最後の引用符が削除される? 0348デフォルトの名無しさん2018/02/05(月) 14:11:13.29ID:ETXmgzVd やっと思い出したぞ裏技w 前後の端にダミーの二重引用符 ^" を付けるんだった >>347 のおかげで思い出したぜ
set testExe="D:\a bc\test.exe" for /f "tokens=3" %%a in ('^"%testexe% --help ^| findstr "targetstr"^"') do ( 0349デフォルトの名無しさん2018/02/06(火) 13:18:25.70ID:m2OYikdE>>347-348 できました。なるほど、そういう解釈がされるんですね・・・。