• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBSを利用して、ファイル名を取得)

VBSを利用して、ファイル名を取得する方法とは?

このQ&Aのポイント
  • VBSを利用することで、ファイルのフルパスを取得する方法があります。
  • 具体的には、フォルダ内のファイルを順番に取得し、フルパスを表示するプログラムを作成します。
  • さらに、取得したファイルの中身を1行ずつ確認し、特定の文字が含まれているかを判定することも可能です。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

何を聞きたいのか? >VBSを利用して、ファイル名を取得 >VBSを利用して、ファイルのフルパスを取得したいと とどう関係するのか。GetFolder()の()内はコードを作る段階か、聞くなら聞く段階で、フルパスを指定する。 それはプログラマ・利用者が判っている前提艇の例題が多い。 その決定をプログラムでやろうというのか。 ーー フォルダ内のファイルを1ファイルずつ取得するようなプログラム Googleででも「フォルダー ファイル VBS」で照会してみたのかな。 何十万という記事があるそうな。 http://okwave.jp/qa/q1561188.html などそっくりな質問では。 この質問と違うなら違うで、その点を注記して質問すべきだ。

tenshin4815
質問者

お礼

ご回答ありがとうございます。 質問内容が分かりにくくて申し訳ございません。 自分で検索はしており、検証もしていたのですが、 お客様情報を含んでいるため、内容の詳細を記載することができず、 概要だけの内容となってしまいました。 ご指摘いただいた、ページも参照していたのですが、有効なのかどうかの 判断ができておりませんでした。 もう一度確認をしてみます。ありがとうございました。

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

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

指定したフォルダーの中のすべてのファイル名を得たいとうことでしょうか? getFolderメソッドと、Filesコレクションを使います。 Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(フォルダのパス) For Each f in folder.Files WScript.Echo f.name Set instream=f.OpenAsTextStream WScript.Echo instream.ReadAll Next

tenshin4815
質問者

お礼

ご回答ありがとうございます。 質問の内容が悪かったようで、申し訳ございません。 C:\TEST\2010\aaa.csv というように、1つのファイルごとにフルパスを全て変数に置き換え、 処理をするようなスクリプトを作成しようと思っておりました。 csvの中身を全て同時に参照する必要はないのですが、このような方法もあるのが 分かり、参考になりました。 ありがとうございました。参考にさせていただきます。

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

関連するQ&A

  • CSVに外部テキストファイルを列として追加する方法

    こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE

  • VBSを利用して、文字列から一部分だけを抜き出す

    VBSを利用して、文字列から一部分だけを抜き出す こんにちわ VBSを利用して、csv形式のファイルを読み込んで文字列の一部を抜き出す 処理を行いたいと思っております。 具体的には、csv形式のファイルをtxt形式に置き換えると "aaaa","bbbb","ccc","ddd","あああeee","OS=abcde" というような形で開きます。 ※a~eの文字数は固定ではありません。 このような場合、文字列に「あああ」が含まれていたら、 「ccc」と「OS=*****」をcsvまたはtxtに出力する という処理を行おうとしております。 どのようにプログラムを組めば良いでしょうか。 お手数ですが、ご教授願えれば、助かります。よろしくお願い致します。

  • フルパスから最後のディレクトリ名を取得したい。

    vb.netなのですが、例えば c:\aaa\bbb\ccc\ddd\eee\fff.exe というフルパスがあったとして、 eeeというディレクトリ名を取得したいのですが、 何か良い方法はないでしょうか。 それぞれのディレクトリ名の文字数や階層数は 決まっていないのですが、オススメの方法が ありましたら、教えて頂けると助かります。

  • C言語による「テキストファイルの読み書き(fprintf)」について

    C言語による「テキストファイルの読み書き(fprintf)」について質問です ずぶの初心者ですが、既知のファイルの1行目に指定した文字列を付加させるプログラムを作りたいと思っています。 以下のように作りました。 ------------------------------------------------------------ #include <stdio.h> int main(void) { FILE *fp; fp = fopen("test.csv","r+"); fprintf(fp,"コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56\n"); fclose(fp); return 0; } ------------------------------------------------------------ このとき「test.csv」の内容が以下のようであったとします。(容量は1MBくらいです。) 001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj この状態でプログラムをコンパイルして実行すると、「test.csv」の内容が以下のようになってしまいます。(一行目が消える) AAA,BBB,CCC,DDD,EEE 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj またcsvの行が増える度に妙な挙動になっていきます・・・(一行あいたり、先頭行が5行ほど消えたり) 希望する動作としては コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56 001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj のようになるようにしたいのですがどのようにすればよいのでしょうか。 よろしくお願いします。 (使用ソフト:Borland C++ Compiler, Cpad) 参考にしたサイトの項目:http://homepage3.nifty.com/mmgames/c_guide/17-01.html

  • CSVファイルをAccessに取りこみたい

    以下のような2つのCSVファイルがあるとします。 【hoge1.csv】 aaa,bbb,ccc,ddd 1,2,3,4 【hoge2.csv】 aaa,bbb,ddd,eee,fff 1,2,4,5,6 Accessをあまり使用したことがないので教えていただきたいのですが、 hoge1.csv、hoge2.csvを、以下のような形で Accessの1つのテーブルにインポートする事はできるのでしょうか? ---------------------------- | aaa | bbb | ccc | ddd | eee | fff | | 1 | 2 | 3 | 4 |  |  | | 1 | 2 |  | 4 | 5 | 6 | ---------------------------- ※「aaa」「bbb」…をフィールド名としたいです vb等でプログラムを自作するしかないのでしょうか? 何か良い方法がありましたら教えてください。お願いします。

  • 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 'ファイルコピー

  • VBSでカンマ区切り

    お世話になっております。 VBSで、CSVファイルをカンマ区切りで配列にし、 ファイルに書き出したいです。 下記のスクリプトを実行すると3行の改行と これ⇒ ---------------- だけ出力されます。 Splitは使用できないのでしょうか? どこが間違っているのかわかりません。 ご教授いただけませんでしょうか。 '--------------------------------------------------------------- On Error Resume Next Set OBJFS01 = CreateObject("Scripting.FileSystemObject") Set CSVTEXT01 =OBJFS01.OpenTextFile("C:\tmp\CSVTEXT.log") Set LOGTEXT01 =OBJFS01.OpenTextFile("C:\tmp\LOGTEXT.log",8,False) '--------------------------------------------------------------- i = 0 Dim HAIRETU(27) Do While i < 6 HAIRETU(27) = Split(CSVTEXT01, ",") LOGTEXT01.WriteLine(HAIRETU(2)) LOGTEXT01.WriteLine(HAIRETU(3)) LOGTEXT01.WriteLine(HAIRETU(4)) LOGTEXT01.WriteLine("----------------") i = i + 1 Loop LOGTEXT01.close CSVTEXT01.close

  • VBSを使用してXMLファイルの不要行を削除を行いたい

    お世話になります。 表題の件先に進まず困っておりお力を貸して頂けますでしょうか。 OSより出力されたXMLファイルに不要箇所があり、 その不要箇所をVBSを使用して削除し成形し直す事を行っております。 XMLファイルをVBSでテキストと読み取り不要箇所を検索し削除と思ったのですが、思うようにいきません。 該当箇所の先頭からの文字数を検索し、その前後を抜き出して 成形しなおそうとしたのですが、検索が出来ませんでした。 【検索VBS】 Const ForReading = 1 startxml = "<Parameters>" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("Test01.xml", ForReading) Wscript.Echo InStr(strCharacters,startxml) 【読み込みファイル】 添付します 【結果】 0 【不要箇所】 <Parameters>から</Parameters>までです。 よろしくお願いします。

  • csvファイルを読み込む方法について

    aspにてscvファイルを読み込む際、直接ファイル名を指定するとうまくいくのですが、ファイル名を変数で指定しようとすると、「ファイルが見つかりません」というエラーになってしまいます。どのように記述すれば良いでしょうか。お教えください。よろしくお願いいたします。 (例) 'OK Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath("aaa.csv"),1) 'NG fname = "aaa.csv" Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath(fname),1) また、 Set objText = objFS.OpenTextFile(Server.MapPath("""" & fname & """"),1) としてもダメでした。以上です。

  • DOSコマンドでVBSで取得した値をセットしたい

    DOSコマンドで VBSで取得した値をセットしたい サーバ上のあるフォルダにファイルが蓄積されています。 2011_07_01.csv 2011_07_02.csv 2011_07_05.csv 2011_08_05.csv 今月(8月)になった時点で、先月分(07月)で且つ_01.csv と_05.csvファイル を削除するコマンドを作ろうとしています。 先月を取得する部分をVBSにし、その値をセットしようとしましたが、セット方法が分かりません。 echo WScript.Echo Right("0" & Month(DateAdd("d",-15,Date)), 2)> C:\tmptest.vbs CALL C:\tmptest.vbs とするとメッセージボックスで'07'と出力されます。 イメージですが、この'07'を変数にセットして、 (SET AAA = C:\tmptest.vbsの出力結果 のような) フォルダ内で ????_%AAA%_01.csv ,????_%AAA%_05.csv にマッチすれば削除するとしたいのですが、 (FOR /R %%A IN (????_%AAA%_01.csv,????_%AAA%_05.csv) DO DEL %%A というかんじで) VBSで取得した値をセットする方法を教えてください。

このQ&Aのポイント
  • 民間廃棄物業者の信頼性について疑問がある方も多いかもしれません。しかし、信用できる民間廃棄物業者は存在します。
  • 信頼性の高い民間廃棄物業者は、適切な許認可を受けているだけでなく、高品質な廃棄物処理技術を持ち、環境規制に適合しています。
  • また、信頼できる業者は、迅速かつ適切な対応を行い、顧客の要望に応えることも大切にしています。信頼性のある民間廃棄物業者を選ぶためには、信頼できる業者の評判や実績を調査することが重要です。
回答を見る

専門家に質問してみよう