[英]Windows Server 2008 command works in CMD but not in batch file
我正在尝试从众多子文件夹中导出csv(和其他文件)。 这些是将要删除的存档文件夹拖放到要加载的数据库服务器上。 无论如何,我发现有两行代码可以工作(或确实可以工作),但是当加载到bat文件中或由xp_cmdshell命令调用时,它们是行不通的。
这些命令旨在提取位于多个(数百个)子目录中的所有文件。 当我手动将它们放在命令提示符下时,它们又可以工作了,但是当它们从SQL Server通过bat(或cmd文件)或xp_cmdshell调用时却不能。
for /f "tokens=*" %a in ('dir /b /s /a-d "C:\SPSData\UTDB1_Stage1"') do @move "%a" "C:\SPSData\UTDB1_Stage1"
MOVE C:\SPSData\UTDB1_Stage1\ *\ * C:\SPSData\UTDB1_Stage1\
在批处理文件中使用时,您需要通过以另一个%
作为前缀来转义%
变量介绍程序-用%%a
代替%a
%%a
:
for /f "tokens=*" %%a in ('dir /b /s /a-d "C:\SPSData\UTDB1_Stage1"') do @move "%%a" "C:\SPSData\UTDB1_Stage1"
我可以想象通过xp_cmdshell
进行调用也需要同样的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.