2016-12-01 67 views
0

我有一個批處理腳本,使兩個文件。它首先創建一個目錄來放置所有內容。然後,它會生成一個.vbs文件,用於不可見地運行另一個批處理文件。然後,它會生成.vbs將運行的批處理文件。 我遇到了這個問題。 這是創建第二個批處理文件的代碼。如何批量覆蓋文件時搜索子文件夾?

Echo echo Spaghetti ^> C:\Users\*.kys > C:\ProgramData\Kys\injector.bat 

這使名爲injector.bat
文件這是injector.bat

echo Spaghetti > C:\Users\*.kys 

是應該覆蓋與在C .kys擴展名的文件的內容:\用戶目錄以及其中的任何子文件夾和文件。

跟它Echo echo Spaghetti the directory or name is incorrect

+0

你的意思是說「文件名,目錄名稱或卷標語法不正確。」? –

+0

你真的有一個名爲* .kys的文件嗎? – Compo

回答

0

你不能寫在一個命令的不同位置的多個文件。找到每個文件分開來寫:

for /r "c:\users\" %%a in ("*.kys") do echo Spaghetti > "%%a" 
1

你不能重定向(>)數據到多個文件,因此野生卡*.kys*是不能接受的。

你可以使用一個for循環,就像這樣:

for %%F in ("C:\Users\*.kys") do echo Spaghetti > "%%~F" 

要由主批處理文件寫入injector.bat此,使用下面的代碼:

echo for %%%%F in ^("C:\Users\*.kys"^) do echo Spaghetti ^> "%%%%~F" > "C:\ProgramData\Kys\injector.bat" 

請注意,這僅適用如果該代碼是而不是被置於另一個使用%%Ffor循環內。

順便說一句,你知道,echo text > file.ext>跡象之前實際寫入SPACE到文件file.ext呢?請參閱this post瞭解如何避免這種情況。