2010-10-25 21 views
3

我嘗試使用下面的批處理腳本某些文件串連在一起:爲什麼這個批處理文件會產生額外的,意外的,不需要的字符?

copy NUL bin\translate.js 
for %%f in (source\Libraries\sprintf.js, source\translate-namespace.js, source\util.js, source\translator.js, source\translate.js) do (
    type %%f >> bin\translate.js 
    echo. >> bin\translate.js 
) 

然而,當我這樣做,一個額外的性格似乎在每個文件的結尾進行打印。當我用ASCII查看文件時,它被解釋爲這三個字符: ?

爲什麼會發生這種情況?我能做些什麼來解決它?

回答

1

該看起來像一個unicode byte order mark。是否可以從沒有字節標記的文件開始?我不知道任何可以刪除標記的命令行命令。

+0

呼叫良好。這看起來確實是這個問題。我會考慮是否可以存儲沒有字節順序標記的文件,但我不知道這是否可行(其他人可能正在編輯這些文件,我希望他們能夠編輯文件他們選擇的編輯)。 – 2010-10-25 14:26:48

+0

如果您使用Windows批處理文件以外的編程語言,這當然會非常容易。 – 2010-10-25 14:46:29

+0

同意。幸運的是,我能夠找到一種工具,可以在我不需要寫任何東西的情況下做我想做的事情(儘可能多的有趣,這不完全是我想要花費的時間)。該工具可以在這裏找到:http://www.interworks.com/blogs/banderton/2010/04/01/javascript-combinerbuilder – 2010-10-25 16:03:43

0

DOS copy命令的工作方式與UNIX cat命令類似。也就是說,您可以列出多個源文件和一個目標文件,並與+標誌分開。

copy source\Libraries\sprintf.js+source\translate-namespace.js bin\translate.js 
+0

我知道這是可能的,但我想在連接的文件之間添加一個新行。此外,這也有完全相同的問題。 – 2010-10-25 14:24:24

+0

那麼,你已經有了一個'NUL'文件,我認爲它是空的。你可以有一個「空行」文件,並將其與源文件一起插入。 – eduffy 2010-10-25 14:56:47

相關問題