• ベストアンサー

VBS

フォルダの中にファイルがあるか調べ、あったらそのファイルを開くようにしたいんですが、どのように記述すれば良いのでしょうか? VBAの時はDirとかで有無を確認できたんですが、VBSでは使用出来ないようなので困っています。お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>folderspecと言うのは、何が格納されているのでしょうか? そのフォルダのパスを絶対パスまたは、相対パスで指定します 例 oFSO.GetFolder("C:\temp") '絶対パス oFSO.GetFolder(".") '相対パス まずは、ドキュメントをダウンロードしましょう。 http://www.microsoft.com/japan/msdn/scripting/default.asp そうすれば、 GetFolderについてもちゃんとした説明があるものを(オフラインで)読めます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

Folderオブジェクトの Filesプロパティで フォルダ配下のファイルのコレクションが得られます フォルダーオブジェクトを得るには ファイルシステムオブジェクトで GetFolderメソッドを使います

全文を見る
すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4856/10272)
回答No.2

WSH5.6リファレンスの、「FileSystemObject コレクション」 のFilesコレクションのところにサンプルが出ています。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jscolfiles.asp
SUPERH2O
質問者

補足

ここで紹介されている、GetFolder(folderspec)のfolderspecと言うのは、何が格納されているのでしょうか?もしくはオプションか何かですか? 教えて下さい。

全文を見る
すると、全ての回答が全文表示されます。
  • mo_gu
  • ベストアンサー率51% (56/109)
回答No.1

FileSystemObjectを使用してみてはどうでしょうか。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsobjFileSystem.asp
SUPERH2O
質問者

補足

自分の記述が変でした。申し訳ありません。 確かにGetFileNameを使用すればファイル名は取得できると思いますが、フォルダ内をループさせて、全てのファイル名を取得したいんですが、教えて頂けますか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • vbsでのアスタリスクとファイル取り込み

    お世話になっております。 Vbsを使用して以下のことを実施したいと思っております。 ■実施したいとこ あるフォルダの中にある「.dat」ファイル(複数あります)をテキストファイルに書き込みを行いたい。 ■例 Aフォルダの中にB.dat、c.dat、e.datとファイルがあります。 この3つのファイルをF.txtに書き込みを実施したいと思っております。 以下を使用してファイル一覧を取り込むのはみつけたのですが DIR関数がVBSでは使用できませんでした。 strDirName = Con_FolderName & "\*.dat" f_logfile = Dir(strDirName) よろしくお願いいたします。

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • VBSによるファイルコピー

    教えてください。 Aフォルダの中にファイルが3つ有るとします。 あ.jpg い.jpg COPY.VBS Aフォルダ内 COPY.VBS を実行すると、 あ.jpg→C:\ い.jpg→C:\PIC とファイルを異なる場所に移動したいのです。 上記の処理をする場合、Aフォルダがどちらか 決まった場所に置いて有る(C:\等)の場合は 解るのですが、実行者がAフォルダをどこに 置き実行するか解りません、VBSから見たときに 自分(vbs)と同じフォルダに有るファイル と言うパスで上記のファイル移動を実現する事は 可能でしょうか? 以上よろしくお願いします。

  • vbsでZIPファイルを特定のフォルダへ。その1

    http://d.hatena.ne.jp/haradago/20150402/p1 を参考に VBSでZIPファイルを特定のフォルダへ解凍しようとしているところです。 以下の記述の意味がわからないので解説お願いします。 --------------------------------------------------- '解凍するZIPファイル DIR_SOURCE = "C:\Users\a\Desktop\aaa.zip" '解凍先 DIR_DEST = "C:\Users\a\Desktop\解凍先" '定数 Const FOF_SILENT = &H04 '進捗ダイアログを表示しない。 Const FOF_NOCONFIRMATION = &H10 '上書き確認ダイアログを表示しない([すべて上書き]と同じ)。 'オブジェクト生成 Set objShell = CreateObject("Shell.Application") Set FilesInZip = objShell.NameSpace(DIR_SOURCE).items Set objFolder = objShell.NameSpace(DIR_DEST) '解凍 If (Not objFolder Is Nothing) Then objFolder.CopyHere FilesInZip, FOF_NOCONFIRMATION + FOF_SILENT End If msgbox "解凍がおわったよ" ----------------------------------------------------------- 上記のVBSを実行すると デスクトップ上に ある aaa.zip が 解凍先 という名のフォルダのなかに 解凍されます。 「解凍がおわったよ」というメッセージも表示されます。 なぜ動くのかがわからないです。 ------------------------------- 'オブジェクト生成 Set objShell = CreateObject("Shell.Application") Set FilesInZip = objShell.NameSpace(DIR_SOURCE).items Set objFolder = objShell.NameSpace(DIR_DEST) ----------------------------------- の意味がわかりません。  オブジェクト メソッド プロパティ の意味はなんとなく程度です。 動物にたとえるならば、   犬・・・・オブジェクト   メソッド・・・・吠える、走る    プロパティ 犬の重さ 大きさ   という感じです。 Set objShell = CreateObject("Shell.Application") の意味なんですが、 ウィンドウズパソコンに入っているソフトを使うときによく出てくるんですが そうゆうもんだと 思っとけばいいんですかね?  たとえば  Set FilesInZip = objShell.NameSpace(DIR_SOURCE).items Set objFolder = objShell.NameSpace(DIR_DEST) この2行の意味ってなんでしょうか? google で NameSpace vbs で調べてはいるんですが、 さっぱりわからないです。 最終的には  解凍.vbs ってアイコンに 解凍したいzipファイルをドロップしたら、指定するフォルダへ 解凍ファイルを放り込むスクリプトを作ろうとしてます。 

  • UWSCからvbsファイルを呼ぶ方法

    UWSCからvbsを呼ぼうと思って以下の記述をしてみましたが、上手く動きません。 str="C:\SendMail.vbs" Exec(str) SendMail.vbsファイルをマウスでクリックすると正常にメールが届くのでSendMail.vbs内の記述には問題なさそうです。 ググってもUWSCファイル内にvbsのファンクションを記述する方法はありましたが、vbsファイルの呼び出し方は見つけられませんでした。 正しい記述方法があれば教えて下さい。よろしくお願いします。

  • バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。

    バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。 あるフォルダにvbsファイルとそれを実行するためのバッチファイル、vbsで読み込むリストファイルを置いています。 これを現在ログインしているのとは別のユーザで実行したいのですが、ファイルの記述をすべてフルパス指定しなければ動きませんでした。 しかし、フォルダが変わるたびにすべてのパスを書き換えるのが大変なため、以下のように修正を加えたいと思っています。 (1)バッチファイルでvbsを実行する際、カレントディレクトリ情報を取得し、パスを確定。(CDコマンド) (2)vbsファイル実行 (3)(1)のCDコマンドで読み込んだ情報をvbsに引き渡し、リスト読み込み。 バッチファイルからvbsに引き渡す部分、vbsがバッチファイルから受け取る部分の記述が分かりません。 一例を教えていただけないでしょうか?

  • VBSでEXCELのXLSTARTにあるマクロを実行するには

    VBSを実行したときに既にEXCELを開いている場合にはFor Each wb In Workbooksを使ってXLSTARTフォルダにあるファイルのVBAマクロを実行できます。しかし、EXCELを開いていない場合にはCreateObject("Excel.Application")でEXCELを開いてもXLSTARTフォルダにあるファイルそのものが見つかりません。VBSを使わず、プログラムファイルからEXCELを開く場合にはXLSTARTフォルダにあるファイルも問題もなく開きます。どうすればEXCELを開いていない場合でもVBSでEXCELのXLSTARTにあるマクロを実行できるでしょうか? 因みにXLSTARTのフォルダパスは不特定多数の環境(OSはWindows95-XP、EXCELは97-2007の組合せ)で特定されていないものとします。さらにツール、オプションの全般タブの「起動時に全てのファイルを開くフォルダ」にはXLSTARTが指定されているものとします。

  • VBSについて

    VBSについて質問です。プログラミング初心者です。 既定フォルダ内のファイルを選択したフォルダ内にコピーするプログラムを組みたく、 色々調べながら作成してみましたが、うまくいきません。 症状として、選択したフォルダではなく、 プログラムを保存しているフォルダにコピーされてしまします。 選択したフォルダに保存するためには、どのようにすればいいでしょうか? また、下記コードがうまくいかない理由も解説もしてくださると大変助かります。 C:\strFrom ←既定のコピー元フォルダ C:\strTo  ←プログラム実行時に選択するコピー先フォルダ C:\VBS   ←プログラムを保存しているフォルダ ※ここにフォルダ名「strTo」で「strFrom」内のファイルが保存される Set objFS = CreateObject("Scripting.FileSystemObject") 'ファイルシステムオブジェクト作成 strFrom = "C:\strFrom" 'コピーするフォルダのパス Set shla = WScript.CreateObject("Shell.Application") 'Shellの呼び出し Set strTo = shla.BrowseForFolder(0, "フォルダを選択して下さい", &H1) 'パス取得 WScript.echo strTo.Items.Item.Path '取得パス確認 objFS.CopyFolder strFrom, strTo 'ファイルコピー

  • Excel2003起動プログラム(VBS)

    Excelを自動で起動させるプログラムを組みたいと思っています。 VBSをダブルクリックしたらExcelが起動されるものです。 起動するのにも、条件があります。 同じフォルダにある一番新しいファイルが 更新されたかどうかを判断します。 更新されていたら、何もせず、 更新されていなかったらExcelを起動させたいです。 このようなプログラムをVBSで組めるのでしょうか? VBAについては多少理解し始めたのですが、 VBSになるとエラーが目で見て分かることが少ないため、 何が原因か判別するのが難しいです。 ブックがある位置は、 BookPath = ThisWorkbook.Path で合っているのかと思います。 例えば、C:上にTOPというフォルダがあるとします。 そして、その中にExcelファイル A.xls 更新日時 2013/10/11 B.xls 更新日時 2013/11/05 C.xls 更新日時 2013/11/10 があります。 この場合、一番新しいエクセルデータ 「C.xls」が今日(11/11)更新されていないので、 VBSを叩いたら表示されるようにしたいのです。 C:直下にあるTOPフォルダにはどんどんEXCELファイルが 増えていくようになっています。 説明不足な点もあるかもしれませんが、 回答よろしくお願いいたします。

  • VBS(WSH)でディレクトリの場所を取得する方法

    DOSコマンドで下記のようにすると、"temp"というフォルダがCドライブ内のどこに存在するか確認できますが、VBSで同様の結果を取得する方法がわかりません。 C:\> dir temp /s 申し訳ありませんが、分かるかたがいましたらお願いします。