問題タブ [filesystemobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1708 参照

vbscript - Trying to use Shell object and FileSystemObject in VBScript for file manipulation

I am trying to recursively loop through hundreds of directories, and thousands of JPG files to gather sort the files in new folders by date. So far, I am able to individually GetDetailsOf the files using the Shell NameSpace object, and I am also able to recursively loop through directories using the FileSystemObject. However, when I try to put them together in functions, etc, I am getting nothing back when I try to get the DateTaken attribute from the photo.

Here is my code so far:

0 投票する
3 に答える
3699 参照

vba - (VBA)他のステーションのCreateTextFileに関連するランタイムエラー76

こんばんは、

私はこのバグを数時間修正しようとしてきましたが、運がありませんでした。バグは自分のワークステーションではなく、他のすべてのワークステーションで発生するため、特にイライラします。このコードの目的は、2つの.txtファイルを作成(FileSystemObject-> CreateTextFile)し、それぞれに特定の情報を書き込む(TextStream)ことです。関連するコード行は次のとおりです。

宣言されたファイルパスは、これがテストされたマシンに存在すると確信しています。アクセス許可など、FileSystemObjectオブジェクトが正しく機能するのを妨げている疑いがありますが、他のワークステーションのOfficeセキュリティセンターを確認したところ、すべて同じ設定でした。有効化されたリファレンスは次のとおりです。

  • Visual Basic For Application
  • MicrosoftExcel14.0オブジェクトライブラリ
  • OLEオートメーション
  • MicrosoftOffice14.0オブジェクトライブラリ
  • Microsoftスクリプトランタイム

これらは、他のすべてのマシンでもアクティブ化されました。

私に何ができる?明確にするために、コードは自分のワークステーションで意図したとおりに機能します。

更新:友人の1人に試してもらいましたが、彼のPCでも問題なく動作します。

0 投票する
1 に答える
341 参照

iis - 分割された *.rar アーカイブを VBScript でコピーして名前を変更する方法は?

サーバーに VB スクリプト (*.vbs) があり、このようなファイルが存在するかどうかを組み込みの FileSystemObject でチェックします...

存在する場合は、ファイルを同じパスにコピーしますが、次のように名前を変更します

このコードで

場合によっては、*.rar アーカイブが複数のファイルに分割される可能性があるため、フォルダーに

分割されたファイルも存在するかどうかを確認し、同じ場所でそれらの名前を変更するにはどうすればよいですか

0 投票する
0 に答える
7741 参照

vba - フィルターで FileSystemObject (VBA) を使用する

私のコードでは、検索するファイル名を記述する必要があります: "test.txt" 。正常に動作し、選択したパスに存在する test.txt と同じ数を返します。

「txt」を検索して、選択したパスにあるすべての .txt ファイルを取得します。

私のコード:

そしてヒント、私は次のようなものを見つけました:

しかし、私のコードではそれを機能させることができませんでした。

ありがとう!

0 投票する
3 に答える
5501 参照

vbscript - VBscriptを使用したサブフォルダプロパティの列挙

これは、Microsoft System Center Configuration Manager 2007にいくらか関連していますが、実際には、VBScript、FileSystemObject API、およびサブフォルダープロパティの読み取りに関する問題です。

スクリプトを実行して、配布ポイントの1つ(パッケージ共有の下にあるすべてのフォルダー)のフォルダーとフォルダーサイズを列挙しようとしています。FileSystemObject APIをVBscriptで使用しているので、サブフォルダーの約60%をクロールして名前とサイズを取得できますが、残りは「エラー70/アクセス許可が拒否されました」を返します。スクリプトを実行するアカウントは関係ありません。各サブフォルダーオブジェクト参照の間にSleep()遅延を追加してみました。それでもすべてを取得することはできません。

手動でフォルダを探索すると、問題なくそれらのプロパティを表示できます。これはFSOまたはWindowsScriptingHostの既知の問題ですか?以下にスクリプトコードを添付しました。TIA!

0 投票する
0 に答える
1163 参照

vb6 - TriStateUseDefault を使用する場合、ファイル エンコーディングはどのように決定されますか

fileSystemObject を使用してファイルを開き、OpenAsTextStream を使用して読み取り用のストリームを取得するコードがあります。ASCII および Unicode ファイルを処理するために、2 番目の引数として TriStateUseDefault (-2) を使用しています。しかし、私は間違いなく ASCII であるファイル (ファイルを開始するための特別な 2 バイトのヘッダーや BOM がない) の状況に遭遇しました。しかし、ファイルは Unicode として解釈されているようです。OpenAsTextStream メソッドに TriStateUseDefault が渡された場合、ファイルの内容をより「興味深い」検査を行って、ファイルが Unicode であるかどうかを推測しようとしますか?

たとえば、問題のファイルには数行のテキストがあり、そのうちの 1 行には "... ^123^...." のようなものが含まれており、ファイルは Unicode として扱われていました。

その行のテキストを "...^1234^..." に変更すると、FSO はファイルを ASCII として扱いました。

fsoがエンコーディングを推測している場合、推測が間違っているようなエッジケースを回避する方法はありますか?

もう 1 つの注意事項 - このファイルには、「とげ」文字 (ASCII 254) を含む「拡張 ASCII」文字が含まれています。

サンプルコード:

0 投票する
1 に答える
2670 参照

recursion - VBS:再帰でのFileSystemObjectの使用

現在、特定のフォルダーを調べて、特定の拡張子を持つすべてのファイルを検索するスクリプトに取り組んでいます。次に、名前が出力され、ファイルサイズが合計されます。私はほとんどの問題を整理したと思うので、この質問はこれを行う方法についてではありません。

代わりに、再帰関数でFileSystemObjectストリームを使用するためのベストプラクティスを知りたいです。すべての呼び出し(グローバルまたはパス)に単一のストリームを使用する必要がありますか、それとも再帰ステップごとに新しいストリームを作成する必要がありますか?

さらに楽しくするために、これを複数のPCにアクセスさせ、UNCパスを介してアクセスさせることを計画しています。はい、これを行うためのより良い方法があると思いますが、私はVBSに比較的慣れていません。

現在のコード:

では、すべてのアクセスに1つのファイルストリームを使用する必要がありますか、それとも各ステップで1つのファイルストリームを個別に使用する必要がありますか?それは論点ですか?これにより、各システムへの複数の接続が発生しますか、それとも1つだけを使用する必要がありますか?基本的に、ユーザーを混乱させたり、奇妙な応答(つまり、アクティブな接続が不足したり)を引き起こしたりすることなく、スクリプトを機能させたいと考えています。このスクリプトは、私たちが行っている監査に2、3回しか使用されませんが、最終的には将来の監査に転用される可能性があります。

どう考えているか教えてください。助けてくれてありがとう、

0 投票する
3 に答える
29772 参照

excel - pdfからテーブルを抽出します(Excelに)、pref。w / vba

vbaを使用してPDFファイルからテーブルを抽出し、Excelにエクスポートしようとしています。すべてが正常に機能する場合は、すべて自動で実行する必要があります。問題は、テーブルが標準化されていないことです。

これは私がこれまでに持っているものです。

  1. VBA(Excel)はXPDFを実行し、現在のフォルダーにあるすべての.pdfファイルをテキストファイルに変換します。
  2. VBA(Excel)は、各テキストファイルを1行ずつ読み取ります。

そしてコード:

これはすべてうまくいきます。しかし今、私はテキストファイルからテーブルを抽出する問題に直面しています。私がやろうとしているのは、VBAで「Year'sIncome」などの文字列を見つけて、その後のデータを列に出力することです。(テーブルが終了するまで。)

最初の部分はそれほど難しくありませんが(特定の文字列を見つける)、2番目の部分についてはどうすればよいでしょうか。テキストファイルはこのPastebinのようになります。問題は、テキストが標準化されていないことです。したがって、たとえば、一部のテーブルには3年の列(2010 2011 2012)と2つ(または1)のみがあり、一部のテーブルには列の間にさらにスペースがあり、一部のテーブルには特定の行(Capital Asset、netなど)が含まれていません。

私はこのようなことを考えていましたが、VBAでそれをどうやって行うのかわかりませんでした。

  1. ユーザー定義の文字列を検索します。例えば。「表1:年のリターン。」
  2. a。次の行は年を見つけます。2つある場合は出力に3つの列(タイトル+、2x年)が必要になり、3つある場合は4つ(タイトル+、3x年)が必要になります
    。各年のタイトル列+列を作成します。
  3. 行末に達したら、次の行に移動します
  4. a。テキストを読む->列1に出力します
    。b。スペース(スペース> 3ですか?)を列2の開始として認識します。数値を読み取り、列2に出力します
    。c。(列= 3の場合)スペースを列3の開始として認識します。数値を読み取り、列3に出力します
    。d。(列= 4の場合)スペースを列4の開始として認識します。数値を読み取り、列4に出力します。
  5. 各行、ループ4。
  6. 次の行には数字が含まれていません-テーブルを終了します。(おそらく、ユーザー定義の数字だけで簡単です。15文字の後に数字はありませんか?終了テーブル)

私は最初のバージョンをPDFに基づいて優れていますが、オンラインで読むことはお勧めしませんOpenFileが、むしろFileSystemObject(かなり遅いように見えますが)。

主にステップ2で、私を始めるための指針はありますか?

0 投票する
2 に答える
5259 参照

ms-access - フォルダー内の最後のファイルの移動または削除でアクセス許可が拒否されました

特定のフォルダー内のファイルに対して for each ループを持つモジュール内に MS Access VBA プロシージャがあります。

ループ内では、別のフォルダーに新しいファイルを作成し、ループ内のファイルからクリーンアップされたデータを格納します。新しいファイルのデータを SQL Server 2005 データベースにインポートします。インポートが成功すると、スクリプトはクリーンアップされたファイルを削除し、ループ内のファイルを同じディレクトリ内のアーカイブ サブフォルダーに移動 (またはコピー/削除)しようとします。

ファイルのループは、ループされたフォルダー内のすべてのファイルで正常に機能します...最後のファイルを除きます。そのとき、アクセス許可が拒否されましたというエラーが表示されます。

上記の状況下では、エラーメッセージは常に次のいずれかで発生します(同様のコマンドをいくつか試しました)。

これが私のコードです:

0 投票する
1 に答える
64 参照

excel - 100x2 の範囲を参照してからファイルに出力する

各反復で列を交互にファイルに書き込みたい範囲があります。例を挙げると、A1 > B1 > A2 > B2 などになります。

これをテキストファイルに次のように記述します。

最初の列から情報を取得する次のコードがありますが、反復ごとに 2 番目の列を追加することに行き詰まっています。