
コマンドライン引数によって、スキャナートリマーの挙動や設定を変更できます (バージョン 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
スキャナートリマーは有料のソフトウェアですが、試用は無料です。十分に試用して、性能に満足いただけた場合にのみ、ご購入ください。