質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

Windows 11

Windows 11は、Windows 10の後継バージョン。それまでのMetroデザインを廃止し、Fluentデザインを導入しています。スタートメニューの構成やウィンドウのデザインの変更の他、Androidアプリをネイティブに実行できます。

Q&A

解決済

1回答

566閲覧

バッチファイルにドロップされたファイルパスを一行で出力したい

HYBCJ

総合スコア8

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

Windows 11

Windows 11は、Windows 10の後継バージョン。それまでのMetroデザインを廃止し、Fluentデザインを導入しています。スタートメニューの構成やウィンドウのデザインの変更の他、Androidアプリをネイティブに実行できます。

0グッド

0クリップ

投稿2023/01/26 04:05

実現したいこと

選択した画像をバッチファイルにドロップしたら
Imagemagickを使用して画像をタイル状に敷き詰めて出力することを実現したいです。

バッチファイルにドロップする画像の数は、
100~200個程度で、毎回数は異なります。

ここまではできた

@echo off "C:\Program Files\ImageMagick-7.1.0-Q16-HDRI\magick.exe" montage -mode concatenate -tile 3x "C:\~0001.jpg" "C:\~0002.jpg" "C:\~0003.jpg" "C:\~0004.jpg" "C:\~0005.jpg" "C:\~0006.jpg" output.jpg pause > nul

上記のように画像のパスをバッチファイルに直書きして、
バッチファイルそのものを実行すると問題なく動作するところまでは実現しました。

ですので、「選択した画像をバッチファイルにドロップしたら」←これを実現したいです。

試したこと

@echo off chcp 65001>nul type nul>temp_list.txt for %%f in (%*) do ( echo "%%~dpnxf" >>temp_list.txt ) for /f "delims=" %%a in (temp_list.txt) do ( echo %%a "C:\Program Files\ImageMagick-7.1.0-Q16-HDRI\magick.exe" montage -mode concatenate -tile 3x %%a out.png ) pause > nul

一度、バッチファイルにドロップされたファイルパスをテキストファイルに出力して⇒読み込む、
みたいなことをトライしましたが、うまくいきません。

テキストファイルに出力する必要は全くなく、
ドロップされたファイルが「ここまではできた」のように画像のフルパスが並べば問題ありません。

補足情報(FW/ツールのバージョンなど)

Windows11
ImageMagick-7.1.0-Q16-HDRI

ご教示いただけますと幸いです。
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

poto568

2023/01/26 04:53

「バッチファイルにドロップ」に特別なこだわりがあるのでなければ 対象の画像群を1つのフォルダに入れて、ワイルドカードで対象指定 (入力ファイルを *.jpg)するのが簡単かもしれません。 (というかコマンドラインの引数に渡すと1行文字数制限に引っかかり そうですが…)
bsdfan

2023/01/26 05:02

シンプルに "C:\Program Files\ImageMagick-7.1.0-Q16-HDRI\magick.exe" montage -mode concatenate -tile 3x %* out.png では駄目だったんでしょうか?
HYBCJ

2023/01/26 05:43

bsdfanさん %*でうまくいきました! 何時間も悩んでたので、すごく助かりました! poto568さんもありがとうございます!
guest

回答1

0

自己解決

bsdfanさん、poto568さんにご教示いただいた方法で解決できました。
ありがとうございます。

投稿2023/01/26 12:18

HYBCJ

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問