2011-08-13 21 views
0

我很好,真正坚持这一点。我需要在我为.bat文件设置的数组中有空格,然后运行以下代码。它不起作用!有任何想法吗?DOS批处理数组值需要空间

%2是一个解析成这个.bat文件的变量。

set App_Loc=("c$\Program Files\A B") 
for /f "usebackq delims=" %%i in %App_Loc% do (
robocopy \\%2\%%i <USER DEFINED LOCATION> 
) 

任何帮助将不胜感激!

+1

我不知道我明白你在这个脚本中调用一个数组。基本上,什么不起作用?你如何期待它的工作,它是如何工作的? –

+1

你有没有尝试在有空格的物品周围放置引号? – shelleybutterfly

+0

不要将DOS与Windows中的某些命令解释器混淆。 DOS是一个操作系统。 –

回答

0

我猜你想把c:\ Program Files \ AB中的文件并将它们的robocopy运行一个服务器(在%2中定义 - 将批处理脚本的第二个参数定义到用户定义的位置) 。

我确实相信如果您能够满足您的要求,很多误解可以得到缓解。但是,这个脚本应该运行给你一些输出可调试

set App_Loc="c:\Program Files\A B" 
for /f "tokens=*" %%f in ('dir /b %App_Loc%') do (
    robocopy "\\%2\%%~nf.%%~xf" "USER DEFINED LOCATION" 
) 

这是我在一个叫test.bat的文件中使用它:

C:\temp>dir "c:\Program Files\A B" /b 
ADONETArtifactGenerator_T4CodeGenTemplateCS.vstemplate 
Barnaby Weir - Tarot Card Rock.mp3 
DisableTaskOffload.reg 

C:\temp>test.bat dummy server 

C:\temp>set App_Loc="c:\Program Files\A B" 

C:\temp>for /F "tokens=*" %f in ('dir /b "c:\Program Files\A B"') do() 

C:\temp>() 
robocopy "\\server\ADONETArtifactGenerator_T4CodeGenTemplateCS..vstemplate" "USER DEFINED LOCATION" 

C:\temp>() 
robocopy "\\server\Barnaby Weir - Tarot Card Rock..mp3" "USER DEFINED LOCATION" 

C:\temp>() 
robocopy "\\server\DisableTaskOffload..reg" "USER DEFINED LOCATION" 

C:\temp>