2014-12-31 33 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