HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0606
こけexecコマンドのオプションで"<"を渡したい4解決


こけ

リンク

2012/6/6(Wed) 21:27:01|NO.47053

HSPでプログラムの結果をメールで送信するソフトを作っています。
メール送信部分はフリーソフトに頼っていて、execコマンドを使いコマンドライン上で行います。

mailsend 0.2
http://www.din.or.jp/~shimaden/

というソフトを使っていますが、実行ファイルのオプションで送信先やSMTPサーバーなどを指定しますが、
その際、本文は別途テキストファイルを用意しその中身が送信されます。

例)
mailsend -s ログ smtp.server my@address to@address < file.txt

とREADMEにあるように、本文のテキストファイルの前に"<"をいれる必要があるのですが、
この<がうまく渡せずにいます。

MailCommand = "mailsend"+" -s \"ReportMail\""+" "+SMTP+" "+FromAdd+" "+ToAdd+" "+"<"+" "+"honbun.txt"
exec MailCommand

とすると、ToAddの変数までは正常に渡されるようですが、その後ろの<が正常に渡せず、honbun.txtをアドレス
とご認識してしまいます。

"<"の文字はエスケープシーケンスが必要な文字ではなかったと思いますが、試しに直前に\をいれても
結果は同じでした。

何か解決案があれば教えて下さい。



この記事に返信する


晩御飯

リンク

2012/6/6(Wed) 22:01:25|NO.47055

説明とかきちんと読んでないのだけれど"<"は引数ではなくリダイレクトでは?



晩御飯

リンク

2012/6/6(Wed) 22:11:04|NO.47056

試してないけどもしかしたら
MailCommand = "mailsend"+" -s \"ReportMail\""+" "+SMTP+" "+FromAdd+" "+ToAdd+" "+"<"+" "+"honbun.txt"
exec "cmd.exe /c " + MailCommand
でいけるかも



こけ

リンク

2012/6/6(Wed) 22:13:48|NO.47057

早速のアドバイスありがとうございました。
おっしゃるとおり、リダイレクトです。
(リダイレクトという呼び方も今知りましたが・・・)

exec "mailsend -s \"test mail\" test.SMTP.xxx.or.jp test@mail.or.jp send@mail.com < honbun.txt"

と直接いれても結果が先ほどと変わりませんでした。
HSPのexecコマンドでは標準入力のリダイレクトをサポートしてないということでしょうか。



こけ

リンク

2012/6/6(Wed) 22:17:47|NO.47058

ありがとうございました!

cmd.exe /c の方法でうまくいきました。



ONION software Copyright 1997-2023(c) All rights reserved.