0

通常、JavaScript はフォルダーやファイルのコピーには使用されませんが、ローカル システムでのみ使用するために JavaScript で記述された wsf ファイルを使用しています。

私が抱えている問題を簡単に説明します: C:/Program Files/FolderFile1、File2、および File3 という 3 つのファイルを含むフォルダーがあります。File3 はコピーする必要がなく、強制終了できない別のプロセスで使用されているため、File1 と File2 のみをコピーします。(実際には、何百ものファイルを含むフォルダーがあり、1つまたは2つを除いてすべてをコピーしたい。)各ファイルを初期化fso.fileCopy()し、個々のファイルごとに行う以外に、フォルダー全体をコピーする方法はありますかファイル3? ある種の除外リストでしょうか?

私が持っているもの:

var fso = new ActiveXObject("Scripting.FileSystemObject");

var originalFolder = fso.GetFolder("C:\\Program Files\\Folder");
originalFolder.Copy("D:\\Program Files\\Folder");

File3 はプロセスによって使用されているため、これはクラッシュします。やりたくない

var file1 = fso.getFile("C:\\Program Files\\Folder\\File1");
file1.Copy("D:\\Program Files\\Folder\\File1");
var file2 = fso.getFile("C:\\Program Files\\Folder\\File2");
file2.Copy("D:\\Program Files\\Folder\\File2");

何百ものファイルに。

私はスクリプト作成に非常に慣れていないので、JavaScript でこのようなことができるかどうかさえわかりません。

4

3 に答える 3

1

Javascript はtry { ... } catch (exception) { ... }ブロックをサポートしています。この種のローカル スクリプト タスクにより適した言語 (Perl、Ruby、Python など) を強くお勧めしますが、file.Copy() 呼び出しを try-catch ブロックでラップして、catch することも可能です。使用中のファイルを例外とし、全体がクラッシュすることなく続行します。

Javascript の try-catch ブロックの詳細については、こちら を参照してください

于 2013-04-30T00:34:42.380 に答える
0

Node.js を使用することは可能です (おそらく他の JS フレームワークも使用できますが、私は Node しか使用しないため、他のフレームワークについてはわかりません)。

var fs = require('fs');
fs.createReadStream('test.log').pipe(fs.createWriteStream('newLog.log'));
于 2013-04-30T00:55:41.487 に答える
-1
I am very new to scripting, so I'm not even sure if it's possible to do something like this in javascript.

そうではありません。JavaScript がそれを行うことができれば、インターネットを閲覧するたびに、スパムを含む 100 億のファイルがコンピュータのファイル システムにコピーされることになります。

于 2013-04-30T00:25:58.840 に答える