【.cmd】 バッチファイルスクリプト %15 【.bat】 (907レス)
上下前次1-新
1(1): デフォルトの名無しさん [sage] 2022/09/14(水) 20:04:01.36 ID:XL8H98jz(1) AAS
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう
過去スレ
%14 2chスレ:tech
%13 2chスレ:tech
%12 2chスレ:tech
%11 2chスレ:tech
%10 2chスレ:tech
%9 2chスレ:tech
%8 2chスレ:tech
%7 2chスレ:tech
%6 2chスレ:tech
%5 2chスレ:tech
%4 2chスレ:tech
%3 2chスレ:tech
%2 2chスレ:tech
【.cmd】 バッチファイルスクリプト %1 【.bat】
2chスレ:tech
バッチファイルプログラミング 3.bat
2chスレ:tech
バッチファイルプログラミング 2.bat
2chスレ:tech
バッチファイルプログラミング質問スレ
2chスレ:tech
883: デフォルトの名無しさん [sage] 2025/12/11(木) 17:13:57.24 ID:FGoG9TJ/(1/5) AAS
magick.exe *.png -gravity center -composite +append output.png
これを複数フォルダを対象に各フォルダで画像を合成したいのですが
884: デフォルトの名無しさん [sage] 2025/12/11(木) 17:46:27.99 ID:FGoG9TJ/(2/5) AAS
magick.exe montage *.png -tile 3x3 -geometry 400x400+10+4 output.png
こっちは結合なんですが、同じくフォルダ単位で結合したいです。
885: デフォルトの名無しさん [sage] 2025/12/11(木) 18:08:00.33 ID:ZLjLIbW/(1/3) AAS
複数のフォルダをどう指定したいのか?
・ルートフォルダを指定して、自動的にそのサブフォルダを全て実行する
・エクスプローラで、フォルダを複数選択して実行
など
886: デフォルトの名無しさん [sage] 2025/12/11(木) 18:16:33.64 ID:FGoG9TJ/(3/5) AAS
ルートフォルダを指定して、自動的にそのサブフォルダを全て実行する
です。
887: デフォルトの名無しさん [sage] 2025/12/11(木) 21:14:47.68 ID:ZLjLIbW/(2/3) AAS
ご飯食べてきてもまだ誰も回答してないのか
一例だけど
・cdでフォルダ移動しなくてもmgickにパス指定で渡せばいけると思うが実行して確認してないので安全策
・output.pngが存在してたらそれも対象になっちゃいそうだからスキップしとく。何度でも再実行可能になるし
・.pngが存在しないサブフォルダはスキップ
@echo off
set target=
setlocal
if "%~1" neq "" set target="%~1"
for /r %target% %%i in (*.png) do (
cd /d %%~dpi
if not exist "output.png" (
echo %%~dpi
magick.exe montage *.png -tile 3x3 -geometry 400x400+10+4 output.png
)
)
endlocal
888: デフォルトの名無しさん [sage] 2025/12/11(木) 21:37:35.25 ID:ZLjLIbW/(3/3) AAS
上のはフォルダにpngファイルがいっぱいあるとその分ループするので(実行には問題ないとおもうが)
@echo off
set target=
setlocal
if "%~1" neq "" set target="%~1"
for /r %target% %%i in (.) do (
cd /d %%i
if not exist "output.png" (
if exist "*.png" (
echo %%i
magick.exe montage *.png -tile 3x3 -geometry 400x400+10+4 output.png
)
)
)
endlocal
889: デフォルトの名無しさん [sage] 2025/12/11(木) 21:47:13.12 ID:FGoG9TJ/(4/5) AAS
ありがとうございます。
ついでに元ファイルを削除する場合はどう書けばいいのでしょうか?
for %%f in (*.png) do (if /I not "%%f"=="output.png" del "%%f")
これだと削除されなかったのですが
890: デフォルトの名無しさん [sage] 2025/12/11(木) 21:54:32.51 ID:FGoG9TJ/(5/5) AAS
失礼しました。
なんとかなりました。
891: デフォルトの名無しさん [sage] 2025/12/12(金) 08:36:30.41 ID:kUSQ7o+M(1/5) AAS
PCのCopilotを呼び出すbatの書き方を教えてください。
892: デフォルトの名無しさん [sage] 2025/12/12(金) 11:46:37.54 ID:kUSQ7o+M(2/5) AAS
自己解決しました。
893: デフォルトの名無しさん [sage] 2025/12/12(金) 12:39:23.24 ID:kUSQ7o+M(3/5) AAS
呼び出す方法は以下になりますが、これだと起動に時間がかかります。
もう少し素早く起動させる方法はないでしょうか?
@echo off
tasklist | find "pwahelper.exe" > NUL
if %ERRORLEVEL% == 0 (
taskkill /im pwahelper.exe /f
) else (
start shell:Appsfolder\Microsoft.Copilot_8wekyb3d8bbwe!App
)
894: デフォルトの名無しさん [sage] 2025/12/12(金) 12:52:42.13 ID:kUSQ7o+M(4/5) AAS
修正できました。
895: デフォルトの名無しさん [sage] 2025/12/12(金) 13:29:31.62 ID:kUSQ7o+M(5/5) AAS
すいません。
修正できたと思ったのですが、無理でした。
batで素早くCopilotを起動する方法を教えてください。
ちなみにショートカットキー(Windowsキー+Cキー)だとすぐに起動します。
896: デフォルトの名無しさん [sage] 2025/12/13(土) 13:19:14.23 ID:jWXCFmDk(1) AAS
start shell〜は内部でexplorerに解釈を丸投げする方法
バッチでそれ以上に早く呼ぶ手段は無い
897: デフォルトの名無しさん [sage] 2025/12/13(土) 13:30:19.84 ID:BSmFYLNE(1) AAS
わかりました。
898: デフォルトの名無しさん [sage] 2025/12/15(月) 05:49:22.65 ID:oaXs9VJj(1) AAS
そういうのはahkでやれ
ahkはWindowsのシェルスクリプト最強格
899: デフォルトの名無しさん [sage] 2025/12/15(月) 11:03:37.81 ID:u2LUgxm/(1) AAS
ッベでめずらしいcmdネタ
動画リンク[YouTube]
900: デフォルトの名無しさん [sage] 2025/12/15(月) 15:02:20.18 ID:EpUZkvst(1/3) AAS
@echo off
"WinSCP.comのパス" ^
/command ^
"open ftps://ユーザー名:パスワード@ホスト名 -explicit" ^
"synchronize remote -delete ローカルホスト リモートホスト" ^
"exit"
こちらのbatなのですが、なぜかインデントを入れないと正常に動作しません。
インデントなしでも正常に動作する方法はありますか?
901: デフォルトの名無しさん [sage] 2025/12/15(月) 18:49:38.02 ID:JO3wGpxW(1/3) AAS
インデント(半角空白1文字でいい)がないと誤動作する場合が出てくる
行連結するには
^(キャレット)は行の最後に書き、その後ろには改行しかないこと(半角空白があるとそれも含めて連結される)
キャレットの後ろの改行は消えることになるので次の行の先頭の文字はどういう扱いになるのか
^(改行)
(次の行の先頭文字)
とあったら
^(次の行の先頭文字)
というように改行が消えてなくなるわけ
で、この場合、^の付いた(次の行の先頭文字)はエスケープした単なる文字として取り扱われることになる
「^"」は単なる文字となるわけ
とすると""の中にある半角空白で引数が分離されることになる
この特性を利用して
set LF=^
と2行分改行のみの行を記述するというテクニックが使えることになる
902: デフォルトの名無しさん [sage] 2025/12/15(月) 18:58:19.54 ID:JO3wGpxW(2/3) AAS
ただし、上で書いたようにキャレットの後ろに半角空白を置くというのはまあ止めておくこと
素直にインデントしとけ
903: デフォルトの名無しさん [sage] 2025/12/15(月) 19:04:07.62 ID:EpUZkvst(2/3) AAS
わかりましたインデントします。
904: デフォルトの名無しさん [sage] 2025/12/15(月) 19:09:33.68 ID:JO3wGpxW(3/3) AAS
すまん
俺が間違って覚えてただけだったみたいだ
俺のレスは忘れてくれ
905: デフォルトの名無しさん [sage] 2025/12/15(月) 20:04:51.36 ID:EpUZkvst(3/3) AAS
え
じゃあ引き続き回答を待ちます。
906: デフォルトの名無しさん [sage] 2025/12/16(火) 05:37:17.11 ID:f6SOomyy(1) AAS
外部リンク:www.google.com
907: デフォルトの名無しさん [sage] 2025/12/16(火) 06:35:51.74 ID:X8ji9Gvx(1) AAS
^の後には何も入れてないです。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s