ABからDOSコマンドを
ABからDOSコマンドを
先日、ディレクトリを作ることをおかげさまで教えていただきました。
でも、そのときの関数は「createdirectry」であり、フォルダ作成のみが
可能でした。
copy
や
type
などのDOSコマンドをコンパイルされたABオブジェクトから実施することは
可能なのでしょうか?
達人の皆様ご指導お願いいたします。
例)
testと入力するとtestフォルダをつくり、workにあるすべてのファイルを
コピーする。
createdirectory c:\test
copy c:\work\*.* c:\test
ようなことをしてみたいのです。このときのc:\testは、変数となるため
ABでしたいのです。
でも、そのときの関数は「createdirectry」であり、フォルダ作成のみが
可能でした。
copy
や
type
などのDOSコマンドをコンパイルされたABオブジェクトから実施することは
可能なのでしょうか?
達人の皆様ご指導お願いいたします。
例)
testと入力するとtestフォルダをつくり、workにあるすべてのファイルを
コピーする。
createdirectory c:\test
copy c:\work\*.* c:\test
ようなことをしてみたいのです。このときのc:\testは、変数となるため
ABでしたいのです。
調べてみると、cmd.exeやcommand.comのコマンド「/C」を使うと出来そうです。
cmd.exeはWin9x系には入っていないと思うので、OSのバージョン確認を最初にしておくべきかもしれません。
構文: cmd.exe /C コマンド
例1例2
cmd.exeはWin9x系には入っていないと思うので、OSのバージョン確認を最初にしておくべきかもしれません。
構文: cmd.exe /C コマンド
例1
コード: 全て選択
Dim buf As *Byte,command As *Byte
' ...
wsprintf(buf,"/C %s",command)
Exec "cmd.exe",buf
コード: 全て選択
#console
Dim A$ As String,buffer As *Byte
Print "Input Command"
Input A$
A$="/C "+A$
buffer=StrPtr(A$)
Exec "cmd.exe",buffer
Sleep(-1)
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
Re: ABからDOSコマンドを
せっかくなので、Dosを捨ててWinアプリで作りませんか?
ABのメニューからヘルプ(H)HELP->トピックス(T)でActiveBasicライブラリ(HELPファイル)を開きます。
目次->リファレンス->Win32AIP->システムサービス->ファイル
でファイル操作に関するAPIが見えます。
ファイルをコピーするには、CopyFileを使用します。
ワイルドカードは使えなかったと思います。
その場合はFindFirstFileでファイル一覧を取得し、CopyFileで順次コピーする事になると思います。
面倒なようですけど、ABでWinアプリを作るには避けて通れない道です。
.Netなら便利なAPIがたくさん有るんですけどね。
ABのメニューからヘルプ(H)HELP->トピックス(T)でActiveBasicライブラリ(HELPファイル)を開きます。
目次->リファレンス->Win32AIP->システムサービス->ファイル
でファイル操作に関するAPIが見えます。
ファイルをコピーするには、CopyFileを使用します。
ワイルドカードは使えなかったと思います。
その場合はFindFirstFileでファイル一覧を取得し、CopyFileで順次コピーする事になると思います。
面倒なようですけど、ABでWinアプリを作るには避けて通れない道です。
.Netなら便利なAPIがたくさん有るんですけどね。
Re: ABからDOSコマンドを
お世話になります。
> せっかくなので、Dosを捨ててWinアプリで作りませんか?
そうですねとも、そうでないとも言えます。
ベーシックを捨ててC言語で作りませんか?と同様に
自由を失ったらつまらないと言えます。
アクティブベーシックにできることは無限の可能性があると感じます。
> せっかくなので、Dosを捨ててWinアプリで作りませんか?
そうですねとも、そうでないとも言えます。
ベーシックを捨ててC言語で作りませんか?と同様に
自由を失ったらつまらないと言えます。
アクティブベーシックにできることは無限の可能性があると感じます。
> せっかくなので、Dosを捨ててWinアプリで作りませんか?
DosにもWinアプリにも、それぞれ利点と欠点があると思います。
挙げるなら、例えばDosを使う場合は新しくコードを書く量が少なくてすむとか、汎用性が低いとか
Winアプリの場合は汎用性がいいとか、ソースコード量が増える→(いろいろな意味で)資源を無駄にしてしまうとか
都合のいいほうを選ぶのがいいのでは?
DosにもWinアプリにも、それぞれ利点と欠点があると思います。
挙げるなら、例えばDosを使う場合は新しくコードを書く量が少なくてすむとか、汎用性が低いとか
Winアプリの場合は汎用性がいいとか、ソースコード量が増える→(いろいろな意味で)資源を無駄にしてしまうとか
都合のいいほうを選ぶのがいいのでは?
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
これ!かなりいいです。なるほど。
意外と簡単なようで、分かりませんでした。
ありがとうございます。
> お世話になります。
> バッチファイルを作ってから一括処理するのも面白そうですね
>
ありがとうございます。
> お世話になります。
> バッチファイルを作ってから一括処理するのも面白そうですね
>
コード: 全て選択
#N88BASIC
>
> Open "TEST.BAT" For Output As #1
>
> Print #1,"MKDIR C:\TEST"
> Print #1,"COPY C:\WORK\*.* TEST\"
>
> Close #1
>
> Exec "TEST.BAT"
>
> End
>
すばらしくうまくいきました。ありがとうございます。
みなさんのおかげで目的達成できました。
ただ、1)DOSコマンドのコピーをしている際や
2)DELをする際に
1)同じファイル名があると聞かれる
2)全消ししようとするといいですかと聞かれる
ことが発生しました。仕方ないですね。
ありがとうございました。スッキリです。
ただ、1)DOSコマンドのコピーをしている際や
2)DELをする際に
1)同じファイル名があると聞かれる
2)全消ししようとするといいですかと聞かれる
ことが発生しました。仕方ないですね。
ありがとうございました。スッキリです。
DOSコマンドラインのスイッチについて
お世話になります。
DOSコマンドの基本的なスイッチを使用すれば回避できると思われます。
コマンドラインの後ろに下記スイッチを指定してください。
> 1)同じファイル名があると聞かれる
/Y
> 2)全消ししようとするといいですかと聞かれる
/Q
DOSコマンドの基本的なスイッチを使用すれば回避できると思われます。
コマンドラインの後ろに下記スイッチを指定してください。
> 1)同じファイル名があると聞かれる
/Y
> 2)全消ししようとするといいですかと聞かれる
/Q