2014-12-31 31 views
0

我製作了一個帶有一個命令的批處理文件,以便我不必記住代碼。認爲它會很簡單,但是它運行時打印出的代碼並不是文件中的代碼。繼承人的文件中只有一行Windows 7 bat文件留下了部分命令

for /f "tokens=*" %f in ('dir /a:-D /s /b') do move "%f" . 

我已經運行在命令提示符下此代碼,它做什麼,我希望它然而,當我把它放在一個批處理文件並運行它這個由閱讀代碼該cmd

C:\Users\Erik\Desktop\google music backup>movefromsubfolders 
-D was unexpected at this time. 

C:\Users\Erik\Desktop\google music backup>for /f "tokens=*" -D /s /b') do move "f" . 

爲什麼它搞砸了一切?這是我曾經試圖寫那麼我可能會做一些愚蠢的事

回答

1

第一個bat文件批量使用時,您需要雙%

for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" 
+0

奏效。只是好奇爲什麼 – erikstagg

+0

@erikstagg - 這是來自'for'幫助消息:'要在批處理程序中使用FOR命令,請指定%%變量而不是%變量。變量名稱區分大小寫,因此%i與%I不同。這是由於cmd.exe解析腳本的方式,但由於我沒有源代碼,所以無法知道詳細信息:-) – npocmaka

+0

哈哈。謝謝你的幫助! – erikstagg