VBからcmd.exeを操作するには


sync  2004-03-06 00:15:14  No: 112190

VBからcmd.exeをvbhideで実行して、コマンドを1行ずつ送るには
どうすれば良いのでしょうか。
ftpコマンドからuserid,passを送ってファイルを落としたいのです。
よろしくお願いします。


へいぽ  2004-03-06 02:09:21  No: 112191

ftp の場合、
テキストファイルに
1行ずつのコマンドを
記述したテキストファイルを
引数に渡すことで出来ますよ。


sync  2004-03-06 02:34:16  No: 112192

ユーザーにuserid,passを見られたくないので、コマンドを記述したファイルは
残したくないのです。
ファイルを使えたら「ftp -s:」を使ってしまえば楽なのですが・・。
どなたかご教授お願いします。


punto  2004-03-06 10:35:09  No: 112193

だからぁ,User ID と Password を command file の引数に
すればいいんでないの?それがいいかどうかはともかく…
$1 や $2 と同じ…,%1 とか %2 だったけ?


sync  2004-03-06 19:59:53  No: 112194

「ftp -s:」コマンドのファイル名の後ろに引数を記述すれば
よろしいのでしょうか?
試してみましたがうまくできませんでした。

バッチファイルから引数を渡してftpを実行してみたのですが、
user ID入力から止まってしまい、これもうまくいきません・・。


punto  2004-03-07 11:38:08  No: 112195

すみません,ftp って -b とか -s とかみたいなのないんだよね…
おまけに windows の ftp だよねぇ,here document もないしぃ…
困ったねぇ… password 送るのは大変か….わしじゃぁ降参しちゃうかも.


ねろ  URL  2004-03-08 03:04:37  No: 112196

ちょっと考えるとバッチファイルの中身を
  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コマンド実行後すぐにマシンがハングアップ(フリーズ)
した場合はバッチファイルが残ってしまう危険性は残ります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加