繁体   English   中英

Windows Server 2008命令适用于CMD,但不适用于批处理文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM