2016-07-27 184 views
0

所以基本上,讓我們說我有一個目錄下面的文件夾:如何創建在目錄中的每個文件夾中創建文本文件的腳本? (Windows批處理)

test_folder_1

test_folder_2

而且我也有在所有的文件夾列表的文本文件目錄。

如何創建將在目錄中的所有文件夾中創建文本文件test.txt的腳本? (test_folder_1和test_folder_2)?

我試圖修改一些代碼,我在網上找到,並得到這樣的:

for /F "tokens=1 delims=," %%v IN (folderlist.txt) DO echo test>"C:\Users\myname\My Documents\test\"%%v"" 

然而,運行此,我得到「拒絕訪問」。
任何想法出了什麼問題,或其他方式來做到這一點?謝謝。

回答

0

命令

echo test>"C:\Users\myname\My Documents\test\"%%v"" 

儘管各地%%v錯了雙引號重定向文本test直接目錄而不是文件test.txt目錄。或者換句話說:Windows試圖創建一個名稱爲已經存在的目錄的文件,結果是訪問被拒絕的錯誤信息。

用於與在文本文件folderlist.txt指定的每個目錄中的線test創建文件test.txt的解決方案是:

for /F "tokens=1 delims=," %%v in (folderlist.txt) do echo test>"%USERPROFILE%\My Documents\test\%%v\test.txt" 

另外,也可以創建一個文件test.txt用0字節中的所有的文件大小測試文件夾的子文件夾和批處理文件中的以下命令行。

for /D %%v in ("%USERPROFILE%\My Documents\test\*") do echo. >nul 2>"%%v\test.txt" 

命令作爲在此情況返回子文件夾名稱與完整路徑始終沒有周圍的雙引號,即使文件夾路徑包含空格字符,因爲它是這裏的情況。

請參閱How to create empty text file from a batch file?並閱讀有關Using command redirection operators的Microsoft文章以獲取更多詳細信息。

echo. >nul 2>test.txt結果以書面形式只是一個新的行STDOUT重定向到設備NUL,以避免打印大量的批處理執行到屏幕空行。並且對文件text.txt沒有任何內容從STDERR重定向,因爲沒有命令打印的錯誤消息ECHO導致創建空的test.txt文件。

在命令提示符窗口中運行for /?尋求命令幫助對於

+0

謝謝莫菲。我還可以問你,爲什麼我們使用%% v而不是%v?在任何情況下都可以使用一個%符號,如果是這樣,兩者之間有什麼區別? – Ambushes

+0

當您直接從命令行運行命令時,您使用單個%符號。使用雙%符號在批處理文件中。 – Filipus

相關問題