拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1424858999/
それ以前の過去スレ
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc12.2ch.net/test/read.cgi/tech/1197881068/
%1 http://pc11.2ch.net/test/read.cgi/tech/1178281991/
探検
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/03/11(土) 13:47:11.66ID:2LSSeyH1
338デフォルトの名無しさん
2018/02/05(月) 04:53:11.12ID: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の設定が地味に面倒になってしまうので回避したいのですが、何か良い方法はないでしょうか?
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の設定が地味に面倒になってしまうので回避したいのですが、何か良い方法はないでしょうか?
339デフォルトの名無しさん
2018/02/05(月) 05:04:15.80ID:j3KUW6ez >>338 追記
パスに空白を含む場合も問題ですが、
set testExe="D:\abc\test.exe"
のように空白を含まない場合には
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
と言われてエラーになるので、それも含めてなんとかしたいという点を書き忘れていました。
「FOR文でフルパスでコマンドを実行したい場合、どうすればよいのでしょう」というのが根本的な質問です。
パスに空白を含む場合も問題ですが、
set testExe="D:\abc\test.exe"
のように空白を含まない場合には
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
と言われてエラーになるので、それも含めてなんとかしたいという点を書き忘れていました。
「FOR文でフルパスでコマンドを実行したい場合、どうすればよいのでしょう」というのが根本的な質問です。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 「3.11の余震とは別か」「長時間避難できる場所を」 識者の見方 [蚤の市★]
- 前のネトウヨ「抗議だけで済ませるから日本は中国に舐められる!」→今「冷静に毅然と抗議する高市さん凄い!」 これマジで何なんだよ… [314039747]
- 【実況】博衣こよりのえちえち朝こよ🧪
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
