Windows Server 2008命令在CMD中工作,但在批处理文件中不起作用



我正在尝试从众多子文件夹中导出csv(和其他文件)。这些是丢弃在我们的数据库服务器上以加载的存档文件夹。无论如何,我发现有两行代码有效(或确实有效),但是当加载到bat文件中或由xp_cmdshell命令调用时不起作用。

这些命令旨在提取位于多个(数百个)子目录中的所有文件。当我手动将它们放在命令提示符中时,这些再次起作用,但在通过 bat(或 cmd 文件)或从 SQL 服务器调用xp_cmdshell时则不起作用。

for /f "tokens=*" %a in ('dir /b /s /a-d "C:SPSDataUTDB1_Stage1"') do @move "%a" "C:SPSDataUTDB1_Stage1"
MOVE C:SPSDataUTDB1_Stage1 * * C:SPSDataUTDB1_Stage1

在批处理文件中使用时,您需要通过以另一个%为前缀来转义%变量引入器 - 用 %%a 替换%a

for /f "tokens=*" %%a in ('dir /b /s /a-d "C:SPSDataUTDB1_Stage1"') do @move "%%a" "C:SPSDataUTDB1_Stage1"

我想通过xp_cmdshell调用也需要同样的东西。

最新更新