コマンドライン引数によって、スキャナートリマーの挙動や設定を変更できます (バージョン 1.2.5 ~の新機能)。例えば、/hide
オプションを指定すると、画面が表示されなくなり、コマンドラインアプリケーションとしての実行が可能になります。
ScannerTrimmer.exe は、純粋なコマンドラインアプリケーションでは無いので、コマンドラインから直接実行すると、終了を待たずに、次のコマンドを受け付ける状態になってしまいます。特に、/hide
オプションに使用時に、上書き確認メッセージへの応答が困難になるので、/hide
指定時には、Start 命令
の
/wait
オプションを使用して起動するか、バッチファイル (.bat) から実行する必要があります。
start /wait ScannerTrimmer.exe /hide /empty:empty.bmp sample.bmp
コマンドライン引数には長さの制限があるので、処理するファイルのあるフォルダーへカレントディレクトリーを移動してから、相対パスでファイルを指定するのがおすすめです。下の例は、作者の環境では、そのまま動きますが、環境に合わせて、_EXE
、pushd
での移動先、コマンドライン引数
を調整してください。
@echo off set _EXE=X:\Original\cpp\ScannerTrimmer\ScannerTrimmer\Debug\ScannerTrimmer.exe pushd "X:\Original\cpp\ScannerTrimmer\test\small" if not "%ERRORLEVEL%" == "0" ( exit /B ) %_EXE% /hide /yes /empty:empty.bmp ayanami.bmp 2>err.txt if not "%ERRORLEVEL%" == "0" ( echo エラーが発生しました。err.txt を参照してください ) popd pause
pushd
は、cd /d
とほぼ同様にカレントフォルダーを移動するコマンドですが、popd
を呼ぶと、移動前のフォルダーに簡単に復帰できる点が異なります。ちなみに、cd /d
の
/d
オプションは、cd でドライブの移動を可能にするオプションです。
2>err.txt
により、エラー出力が、err.txt に保存されます。/yes
オプションにより、確認なしで、ファイルが上書きされ、標準出力と標準入力は使用されなくなります。
vbs から実行する例です。作者の環境では、そのまま動きます。環境に合わせて、exePath
、folder
、emptyFile
、files
を調整してください。/reset
オプションを指定していないので、/empty
オプションで明示的に指定している「原稿無しでスキャンした画像」以外の設定は、最後に使用したものが引き継がれます。
Option Explicit Dim exePath exePath = "X:\Original\cpp\ScannerTrimmer\ScannerTrimmer\Debug\ScannerTrimmer.exe" Dim folder folder = "X:\Original\cpp\ScannerTrimmer\test\small" Dim emptyFile emptyFile = "empty.bmp" Dim files Set files = CreateObject("System.Collections.ArrayList") files.add("ayanami.bmp") Dim wsh Set wsh = Wscript.CreateObject("Wscript.Shell") Dim fso Set fso = WScript.CreateObject("Scripting.FileSystemObject") If fso.FolderExists(folder) Then wsh.CurrentDirectory = folder Dim cmdLine cmdLine = "2>err.txt" AppendArg cmdLine, exePath AppendArg cmdLine, "/hide" AppendArg cmdLine, "/yes" AppendArg cmdLine, "/empty:" & emptyFile Dim file For Each file in files AppendArg cmdLine, file Next Dim ret ret = wsh.Run("%comspec% /c " & chr(34) & cmdLine & chr(34), 1, True) If ret <> 0 Then WScript.Echo "エラーが発生しました。err.txt を参照してください: " & ret End If Else WScript.Echo "フォルダーが見つかりません: " & folder End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub AppendArg(cmdLine, arg) If cmdLine = "" Then cmdLine = Chr(34) & arg & Chr(34) Else cmdLine = cmdLine & " " & Chr(34) & arg & Chr(34) End If End Sub
Chr(34) はダブルクオート " です。
/reset
全ての設定※1
を、既定値に戻します。/reset
は、最初の引数として指定する必要があります※2。前回終了時の設定を引き継ぎたくない場合に使用できます。
※1 実行に影響しない履歴 (過去に入力した原稿無しでスキャンした画像など) は除きます
※2 他のオプションやファイルリストより後に指定するとエラーになります
例1) ScannerTrimmer.exe /reset 例2) ScannerTrimmer.exe "/reset"
/empty:
「原稿無しでスキャンした画像」のパスを : の後に続けて指定します。
例1) ScannerTrimmer.exe /empty:"empty.bmp" 例2) ScannerTrimmer.exe "/empty:empty.bmp"
/cut:
「切り取る端」を : に続けて指定します。auto
以外の値では、文字の順序は変わっても大丈夫です。例えば、tlbr、ltrb は同じ意味になります。
例1) ScannerTrimmer.exe /cut:auto 例2) ScannerTrimmer.exe /cut:ltrb
/rotate:
「自動回転に使用する原稿の端」を : に続けて指定します。
例1) ScannerTrimmer.exe /rotate:auto 例2) ScannerTrimmer.exe /rotate:lr
/deep_cut:
「原稿を残すことよりも、余白を残さないことを優先する」かを : に続けて指定します。
例1) ScannerTrimmer.exe /deep_cut:on 例2) ScannerTrimmer.exe /deep_cut:off
/size:
「出力サイズ」を : に続けて指定します。
例2) ScannerTrimmer.exe /size:off 例1) ScannerTrimmer.exe /size:640,480
/trim:
「追加のトリミング」サイズを : に続けて指定します。
例2) ScannerTrimmer.exe /trim:off 例1) ScannerTrimmer.exe /trim:4,4
/out:
保存場所の子フォルダー名を : に続けて指定します。
例) ScannerTrimmer.exe /out:trim
/format:
「保存形式」を : に続けて指定します。値は小文字でも大文字でも大丈夫です。
例1) ScannerTrimmer.exe /format:jpeg,90 例2) ScannerTrimmer.exe /format:PNG
/thread:
「スレッド数」を : に続けて指定します。
例1) ScannerTrimmer.exe /thread:1 例2) ScannerTrimmer.exe /thread:4
ファイルパス
オプション引数としてファイルパスを指定すると、自動的に、指定されたファイルに対する処理が開始されます。実行後にアプリケーションを自動終了するには、/end
オプションか /hide
オプションを併用します。
例1) ScannerTrimmer.exe a.bmp b.bmp 例2) ScannerTrimmer.exe /end a.bmp b.bmp
/end
/ 無しの引数で、対象のファイルを指定すると、処理が自動的に開始され、処理が終了した後、アプリケーションも自動終了します。対象のファイルが無い場合は、何もせずに終了するので、あまり意味はありません。
例) ScannerTrimmer.exe /end a.bmp b.bmp
/hide
スキャナートリマーの画面を表示しません。/ 無しの引数で、対象のファイルを指定すると、処理が自動的に開始され、処理が終了した後、アプリケーションも自動終了します。対象のファイルが無い場合は、何もせずに終了するので、あまり意味はありません。エラーは、「標準エラー出力」に出力されます。一方、上書きの確認メッセージは「標準出力」に出力され、「標準入力」から、OK または、キャンセルを入力するまで実行が停止します。確認無しで上書きする場合は、/yes
オプションを併用します。
例1) ScannerTrimmer.exe /hide a.bmp b.bmp 例2) ScannerTrimmer.exe /hide /yes a.bmp b.bmp
/yes
確認せずに、ファイルの上書きしたい時に指定します。ファイルパス
をコマンドラインに指定して自動実行させているときだけでなく、画面にドロップして実行する時にも、上書きの確認がされなくなるので注意してください。
例) ScannerTrimmer.exe /hide /yes a.bmp b.bmp
スキャナートリマーは有料のソフトウェアですが、試用は無料です。十分に試用して、性能に満足いただけた場合にのみ、ご購入ください。