命令
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 /?
尋求命令幫助對於。
謝謝莫菲。我還可以問你,爲什麼我們使用%% v而不是%v?在任何情況下都可以使用一個%符號,如果是這樣,兩者之間有什麼區別? – Ambushes
當您直接從命令行運行命令時,您使用單個%符號。使用雙%符號在批處理文件中。 – Filipus