【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
上下前次1-新
291: 2023/05/10(水)23:36 ID:7WScgW4R(3/3) AAS
バッチスクリプトの引数参照(?)の展開を 通常の変数でも使いたい時ありますよね。
forを使えば、わざわざ関数に渡さなくていいってことですよね。覚えておきます。
292: 2023/05/14(日)01:53 ID:4Al5Gork(1) AAS
ばっちこーい!
293: 2023/05/21(日)15:26 ID:/zBPnU/J(1/2) AAS
Sendtoに置いたバッチがある。
ここに複数のファイルを送り、それぞれのパスをプログラムに送りたい。
送った複数のファイル、はどう表現すればいいのでしょうか。
@echo off
for %%F in (*.jpg) do call :sub "%%F"
goto :EOF
:sub
echo "C:\hoge.exe" "%~dpnx1"
goto :EOF
sub以下は様子見コード
294: 2023/05/21(日)15:31 ID:WLjUQB8s(1) AAS
shift /?
295(1): 2023/05/21(日)16:33 ID:uxeKp44S(1) AAS
何したいか若干よくわからないけど、
hoge.exeに引数全部一気に与えたいなら%*と書くと全部与えられる。
そうじゃなくて、
hoge.exe %1
hoge.exe %2
...
とそれぞれを1つずつ与えたいなら
shiftを使ってずらして%1の中身が無くなるまでループさせる。
296: 2023/05/21(日)17:33 ID:/zBPnU/J(2/2) AAS
>>295
ありがとう、それがわからなかった。
何がやりたいのかわからないのはたぶん echoとpauseのところですよね(^^;
もともとはググって見つけたフォトショ関係のバッチのコピペで、「複数ファイルできます!」って
書いてあるのに1つ送っても2つ送ってもそのファイルのフォルダ全部処理しちゃうので
様子見のために書き換えて、%%Fがおかしいんじゃ?とたどり着いて詰んだところでした。
297: 2023/05/21(日)18:06 ID:/vzELmbQ(1) AAS
*.jpg を %* でも良さそう?
298: 2023/05/29(月)17:17 ID:MDtfdjpW(1) AAS
head abc.txt はエラーになるが
head abc,txt >con とすると実行できた、なぜだろう?
head.exeは2003年のもの
299: 2023/05/30(火)09:18 ID:8/1/VW9e(1) AAS
環境もエラーメッセージも書いてくれてないしコマンドはtypoっぽいしでさっぱりだが
head.exeの標準入出力処理やらコンソール描画エリアサイズ取得やらに問題があるが
標準出力がリダイレクトされてることでその問題のある処理をスキップできてるとかじゃないの
300(1): 2023/05/30(火)09:27 ID:bxkrR6Df(1) AAS
別のhead.exeを持ってくれば?
俺のPCに入ってた
msysの奴(2004/03/16)
Gitの奴(2017/02/14)
ではどっちもhead file名で表示される
301: 2023/05/30(火)09:59 ID:flkBlmPK(1) AAS
>>300
ありがとう
古すぎたんだ、取り替えよう
302: 2023/06/08(木)04:51 ID:qSJ8V+Su(1/3) AAS
初心者です
一桁のだけ出力されません
set m=1 と出すにはどうしたらいいでしょうか?
よろしくお願いいたします
echo off
set MEMO_OUT=memo.bat
echo set m=333>%MEMO_OUT%
echo set m=22>>%MEMO_OUT%
echo set m=1>>%MEMO_OUT%
echo set メモ>>%MEMO_OUT%
pause
----sub.batの結果-----
set m=333
set m=22
set m=
set メモ
------------------------
303: 2023/06/08(木)04:54 ID:qSJ8V+Su(2/3) AAS
こちらでした
----memo.batの結果-----
set m=333
set m=22
set m=
set メモ
------------------------
304: 2023/06/08(木)05:51 ID:/rH9ZSQw(1) AAS
set m=^1>>%MEMO_OUT%
set "m=1">>%MEMO_OUT%
305: 2023/06/08(木)07:04 ID:qSJ8V+Su(3/3) AAS
304様♪
echo set m=^1>>%MEMO_OUT% で無事に解決できました!
本当にありがとうございました(*- -)(*_ _)ペコリ
306: 2023/06/08(木)08:47 ID:vkPB32fx(1) AAS
echo 2>>hoge.txt
みたいな事したくてハマったの思い出した
307(1): 2023/06/08(木)10:00 ID:OrtrngoT(1) AAS
自分は前置する事が多い。少数派みたいだけど。
> %MEMO_OUT% echo set m=333
>> %MEMO_OUT% echo set m=22
>> %MEMO_OUT% echo set m=1
>> %MEMO_OUT% echo set メモ
308: 2023/06/08(木)23:07 ID:5yq6DBkZ(1) AAS
(echo set m=1)>>%MEMO_OUT%
for %%i in ("m=333" "m=22" "m=1" "メモ") do echo set %%~i>>%MEMO_OUT%
309(1): 2023/06/09(金)07:12 ID:XYYWFLgO(1) AAS
>>307
(´・∀・`)ヘー これは初見
利用の際の注意点は無いの?
310: 2023/06/09(金)14:04 ID:du40Kh/C(1) AAS
マイナーってこと以外の注意点はないと思う。
しいて言えばコマンドプロンプト上だと
プロンプトの「C:\>」とくっついて見づらくなるくらい。
311: 2023/06/09(金)14:10 ID:iiwkTFZp(1) AAS
今までこのスレか関連スレで何度かは出てきてはいるけどね
312(1): 2023/06/10(土)00:40 ID:ZROvKvT1(1) AAS
バッチファイルでIPアドレスの変更をしようとしており、
変更前に現在設定されているアドレスを表示させたいです。
本来であればipconfigから抽出すれば良いのですが、ネットワーク接続されていない状況では表示されません。
netsh interface ipv4 show ipaddress "イーサネット"でIPアドレスが表示されることまでは分かったのですが、
その他とmanualで2種類表示されてしまい、manualのIPアドレスのみ抽出したいです。
また、サブネットマスクも表示させたいですが何か表示できるコマンドをご存じないでしょうか。
皆様のお力をお貸しいただきたいです。
313(2): 2023/06/10(土)10:54 ID:DPE/PSj9(1) AAS
>>312
固定IPならレジストリに保存されてるけど、抽出がめんどくさいですね。
HKLM\system\CurrentControlSet\control\network 配下から(イーサネットとか)インターフェース名のGUIDを拾って
HKLM\system\CurrentControlSet\services\Tcpip\Parameters\Interfaces 配下でGUID検索する
314(1): 2023/06/10(土)15:04 ID:FuIdwErj(1) AAS
>>309
The redirection can come anywhere on the line, so watch out for those spaces
外部リンク:devblogs.microsoft.com
315: 2023/06/10(土)16:12 ID:v3IkKBaD(1) AAS
>>314
勉強になりました
316: 2023/06/10(土)17:59 ID:Yvl44ooC(1) AAS
>>313
GUID検索出てくるともうpowershellでちゃんとやった方がええな
うまくすると数行で書けるし
317: 2023/06/11(日)00:20 ID:8nVmCa0A(1) AAS
>>313
312です。ご教示いただきありがとうございます。
レジストリを確認すると確かにGUIDに応じて固定IPが設定されているのを確認できました。
しかし初心者過ぎてどうすれば値を引っ張ってこれる文になるのか分かりません。
もし可能であれば”イーサネット”のIPを引いてこれる文を教えていただけませんでしょうか。
スレ違い、勉強不足で申し訳ありません。よろしくお願いいたします。
318: 2023/06/11(日)01:18 ID:ficsZH/3(1) AAS
"イーサネット"もOSで別のネットワークアダプタとして認識されると末尾に番号が付くから決め打ちは危険かも
319: 2023/06/12(月)07:36 ID:+mHefy5G(1) AAS
PowerShell で、
$guid = "{GUID-1 〜 XXX}"
$a = "HKLM\SYSTEM\CurrentControlSet\Control\Network\{GUID-2 〜 YYY}\"+ $guid +"\Connection";
$b = "HKLM\system\CurrentControlSet\services\Tcpip\Parameters\Interfaces\" + $guid
reg query $a /v "Name";
reg query $b /v "DhcpSubnetMask"
出力
Name REG_SZ イーサネット
DhcpSubnetMask REG_SZ 255.255.255.0
320(2): 2023/06/13(火)10:09 ID:RNzu8ICZ(1/5) AAS
ググっても書式バラバラだわ実行したらエラーメッセージ出るわ、もうわからん助けて・・・。
やりたいこと:ファイル名ごとに渡すプログラムを変えたい。
わからないこと:
if 変数==内容(分岐処理)でいいのか、if 変数==内容 分岐処理なのかサイトによってバラバラだし
どっちにしてもelseなんて定義されてねーよばーかって出てしまう。
条件分岐の書式を教えてください。
参考にしたサイトの1つ:www.javadrive.jp/command/bat/index8.html
希望する処理内容:
処理用フォルダを丸ごとBatファイルにSendto
ファイル名にcoが含まれるJPG、Webp、PNGは、cov.exeに投げる
ファイル名にautoが含まれるJPG、Webp、PNGは、auro.exeに投げる
ファイル名にrecが含まれるJPG、Webp、PNGは、rec.exeに投げる
今書いてる内容:これでelse?は?と言われる
画像リンク
上下前次1-新書関写板覧索設栞歴
あと 499 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.021s