指定フォルダへファイルを移動したい

ネットショップの運営で、画像ファイルをまとめて移動する必要があります。 UWSCを使ってできないでしょうか?
ファイルの移動やコピーといった制御は、
コマンドライン(コマンドプロンプト)を使うことで可能になります。

UWSCでコマンドライン(コマンドプロンプト)を実行するには、
DOSCMD関数を使います。

コマンドプロンプトのに関しては、コチラが参考になるかと思います。

スクリプト

//初期編集
FROM_URL = "C:\mus02.gif"	//移動するファイル
TO_URL = "C:\TEST"		//移動先


MsgBox("ファイルを移動します")
CMDSTR	= "move " + FROM_URL + " " + TO_URL
DOSCMD(CMDSTR,FALSE,TRUE)

解説

movecopyに変えれば、コピーも可能です。
コマンドプロンプトに関しては、
参考ページで調べてみると、色々と可能性が広がるかと思います。

また、まとめてファイルを移動するのであれば、
ファイルPATHの読み込みにFGET,XLGETDATAなどを利用して、
FORWHILEといった制御文で繰り返し作業を行えば良いでしょう。

また、連番ファイルにしていれば、
PATHの指定に読み込みの関数を使わなくても良いでしょう。

DOSCMDを使った記事

タグ

2012年8月1日 | コメントは受け付けていません。 |

カテゴリー:Q&A

COMオブジェクトからInternet Explorerを操作したい

COMオブジェクトからInternet Explorerを操作したい
Intetnet Explorer(以下、IE)を起動する方法はいくつかありますが、
その中でも一番早く、確実なのがCOMオブジェクトを操作することです。

しかし、COMオブジェクトは使い方が少し難しいので
初めての方には
とっつきにくい所でもあります。

まずは習うより慣れよ。
簡単な手順を通して
見ていきましょう。

今回はIEを立ち上げて、あるWebサイトにアクセス、
その後、ページ内にあるHTMLテキストを
全部取ってきて、メモ帳に貼り付ける。
というスクリプトを作ってみます。

まずは、IEを立ち上げるところを
コーディングします。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True

これで、IEが立ち上がり
何もないページがウィンドウに表示されるはずです。
この中が何をやっているか、
最初のうちは分からないでもOKです。
IEを操作するオブジェクトを変数”IE”に入れ、
その”IE”に対して、まずは画面上に現れなさい(visible = True)と
命令していると思えば大丈夫です。

次にあるページ(今回はGoogle)に
アクセスさせましょう。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://www.google.co.jp/")
REPEAT
 SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4

REPEAT-UNTILによる繰り返し制御が行われております。
何を繰り返しているかと言うと
SLEEP(0.1)
つまりある条件になるまでは
ずっと「0.1秒待つ」という行為を繰り返すのです。

ある条件とは
!IE.busy AND IE.readystate = 4
です。
あるWebページにアクセスすると
必ずアクセスして情報取得するまでに数秒程の待ち時間が発生します。
この時間を考慮しないで、次の処理をどんどん書いてしまうと、
必要な情報が読み込まれていないので
エラーになってしまいます。

IE.busyでIEが他の処理を実行しているか、していないか、状態を返してくれます。

いわゆる、ビジー状態かそうでないかを判別してくれるのです。
IE.busyはビジー状態ならばTrue、そうでないならばFalseを返します。
ビジー状態でなければ次の処理に行っても問題ないので、頭に「!」をつけて
「ビジー状態でなければ」という条件を表現します。
頭につく「!」は「否定」を表します。
ビジー状態でない⇒Falseが返ってくる⇒頭に「!」⇒FalseがTrueに変換される
結果、REPEAT-UNTILの条件判定箇所でTrueが返って来るのです。

同様に
IE.readystate = 4
という条件も見ています。
readystateとは「今、どういう状態か」を数字で返してくれます。
4は完了を意味します。
0~3も意味がありますが参考程度ですので、下に記します。
readystate = 0 (未開始)
readystate = 1 (読み込み開始)
readystate = 2 (読み込み中)
readystate = 3 (読み込み中で操作も可能)

読み込みが完了すれば、アクセスしたページのデータは
操作できますので、そのままメモ帳に貼り付けましょう。

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://www.google.co.jp/");
REPEAT
 SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate = 4
SENDSTR(EXEC("notepad"),IE.document.body.innerTEXT)

最後にメモ帳を起動し、
IE.document.body.innerTEXT
で、Webページ中の全テキストを取得して、送信しています。

それでは少し応用して、
ある3サイトにアクセスして、
各ページのテキストをそれぞれメモ帳に
貼り付けるスクリプトを作ってみましょう。

スクリプトはこのようになります。

この投稿の続きを読む »

タグ

2012年3月10日 | コメントは受け付けていません。 |

カテゴリー:Q&A

このページの先頭へ