VBからcmd.exeをvbhideで実行して、コマンドを1行ずつ送るには
どうすれば良いのでしょうか。
ftpコマンドからuserid,passを送ってファイルを落としたいのです。
よろしくお願いします。
ftp の場合、
テキストファイルに
1行ずつのコマンドを
記述したテキストファイルを
引数に渡すことで出来ますよ。
ユーザーにuserid,passを見られたくないので、コマンドを記述したファイルは
残したくないのです。
ファイルを使えたら「ftp -s:」を使ってしまえば楽なのですが・・。
どなたかご教授お願いします。
だからぁ,User ID と Password を command file の引数に
すればいいんでないの?それがいいかどうかはともかく…
$1 や $2 と同じ…,%1 とか %2 だったけ?
「ftp -s:」コマンドのファイル名の後ろに引数を記述すれば
よろしいのでしょうか?
試してみましたがうまくできませんでした。
バッチファイルから引数を渡してftpを実行してみたのですが、
user ID入力から止まってしまい、これもうまくいきません・・。
すみません,ftp って -b とか -s とかみたいなのないんだよね…
おまけに windows の ftp だよねぇ,here document もないしぃ…
困ったねぇ… password 送るのは大変か….わしじゃぁ降参しちゃうかも.
ちょっと考えるとバッチファイルの中身を
open ftp.xxxx
user %1 %2
として
s = "ftp -n -s:" & "バッチファイル名" & " " & "UserId" & " " & "PassWord"
Shell s
これで良さそうなんですが、うまくいきません、ftpは変数置換をしないようです。
FTPサーバーからのファイルの読み書きだけであればWinInetの
FtpGetFileやFtpPutFileの方がお勧めです、これだとUserId,
PassWordを送るのは簡単です。
ただしWinInetではパーミッションの取得、変更はうまくいきません。
この場合Ftpコマンドのお世話になるわけですが、
バッチファイルにUserIdとPassWordを埋め込んで、
Shellコマンド実行後にバッチファイルを消すと言う瞬間芸で
解決する方法が有ります。
ただし確率は低いのですがShellコマンド実行後すぐにマシンがハングアップ(フリーズ)
した場合はバッチファイルが残ってしまう危険性は残ります。
ツイート | ![]() |