2012-04-26 39 views
0

我寫了一個腳本(.js文件),這應該從一個文件複製到另一個的所有文本,但它不工作(我硬盤上運行它)來:將文本複製另一個使用Javascript

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var myInputTextStream = fso.OpenTextFile("C:\\FILE\\back_log.log", 1, true); 
var log = "C:\\Temp\\26_04_2012_16_22_49\\ext.txt";  
    var myOutputTextStream = fso.OpenTextFile(log, 8, true); 
    while(myInputTextStream.AtEndOfStream) 
     { 
     myOutputTextStream.Write(myInputTextStream.ReadAll()); 
    } 
     //myInputTextStream.Close(); 
     //myOutputTextStream.Close(); 
    WScript.Echo("FINISH!!!"); 

任何人都可以配合我(或代碼=))?非常感謝。

+0

這是通常應該處理服務器端的東西。 – 2012-04-26 13:27:26

+0

爲什麼不簡單地使用批處理單線程?複製C:\ Temp \ 26_04_2012_16_22_49 \ ext.txt + C:\ FILE \ back_log.log C:\ Temp \ 26_04_2012_16_22_49 \ ext.txt或C:\ FILE \ back_log.log >> C:\ Temp \ 26_04_2012_16_22_49 \ ext.txt' – Helen 2012-04-26 14:02:27

+0

@Event_Horizo​​n:OP表示Windows Script Host(類似於VBScript,PowerShell或批處理文件)中使用的JScript,而不是瀏覽器中的JavaScript。 – Helen 2012-04-26 14:46:44

回答

1

myInputTextStream.AtEndOfStreamfalse直到閱讀達到EOF。因此你的while -loop永遠不會被執行。

如果使用ReadAll(),則根本不需要while -loop。

你也永遠不應該註釋掉你Close() - 方法,使用便攜式存儲設備,如SDI卡等

0

您可以複製這樣的文件,尤其是當你可能會煩惱,:

var fso, f; 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
f = fso.CreateTextFile("c:\\testfile.txt", true); 
f.WriteLine("This is a test."); 
f.Close(); 
f = fso.GetFile("c:\\testfile.txt"); 
f.Copy("c:\\windows\\desktop\\test2.txt"); 

(這將創建一個文件,然後將其複製,因此就使用有用的部分,它包含在最後2行)。從這裏取

摘錄: http://msdn.microsoft.com/en-us/library/6973t06a%28v=VS.85%29.aspx

0

因爲JavaScript無法訪問本地「C」驅動器,不知道你會在哪裏使用它。即使你將在你的機器上本地運行,爲什麼不使用dos命令,vbscript或wscript呢? JavaScript是矯枉過正。

相關問題