为SQL作业串接CmdExe命令
我正在处理一个简单的CmdExe操作,作为夜间SQL作业的一部分运行。该作业的核心功能是创建一个导出的txt文件到一个文件夹中,供我们的合作伙伴通过ftp访问。我们希望作业在创建新文件之前将文件夹中的所有文件移动到备份位置。我已经做了一个简单的移动命令,例如下面的一个作为启动程序:为SQL作业串接CmdExe命令,cmd,sql-job,Cmd,Sql Job,我正在处理一个简单的CmdExe操作,作为夜间SQL作业的一部分运行。该作业的核心功能是创建一个导出的txt文件到一个文件夹中,供我们的合作伙伴通过ftp访问。我们希望作业在创建新文件之前将文件夹中的所有文件移动到备份位置。我已经做了一个简单的移动命令,例如下面的一个作为启动程序: MOVE "\\Server1\e$\FTPFolder\1234.TXT" "\\Server1\e$\Backup\" 这个命令运行良好。但是,由于这是一个测试环境,现在需要对多个作业进行测试,并且需要转移到生
MOVE "\\Server1\e$\FTPFolder\1234.TXT" "\\Server1\e$\Backup\"
这个命令运行良好。但是,由于这是一个测试环境,现在需要对多个作业进行测试,并且需要转移到生产环境,因此我希望使用一个变量对其进行格式化,以便可以轻松更改服务器名称上下文。根据我的搜索,正确的语法应该如下所示:
SET location=Server1 && MOVE "\\%location%\e$\FTPFolder\1234.TXT" "\\%location%\e$\Backup\"
但是,使用作业执行此操作失败,并且使用cmd测试返回“文件名、目录名或卷标语法不正确”。但是,如果我在cmd中通过先设置变量来断开它们,请按enter键,然后创建与之相同的Move命令。是否有我遗漏的东西需要正确地将这些串在一起 Cmd在运行前对整行进行评估。因此,它涉及到:
SET location=Server1 && MOVE "\\\e$\FTPFolder\1234.TXT" "\\\e$\Backup\"
因为评估时未定义%location%。若要告诉他在运行时进行评估,请将%替换为!(帮助集)
SET location=Server1&&MOVE“\!location!\e$\FTPFolder\1234.TXT”“\!location!\e$\Backup\”