从powershell运行tdpsql命令

时间:2011-04-27 13:49:52

标签: powershell

我有一个脚本需要3个必需的输入参数,这些参数将用于运行tdpsql的备份命令。

  1. 类型(FULL,DIFF或LOG)
  2. SQLServerinstancename
  3. 数据库(SYSTEM,ALL,)
  4. 在powershell脚本中,我有以下一行

    $cmd = "C:\Progra~1\Tivoli\TSM\TDPSql\tdpsqlc.exe backup " + $idatabase + " " + $action + " " + $parameter + " /LOGFILE=" + $logdir + $logfile + "" $tdpsqlexe - The tdpsqlc exe.
    $idatabase - Database name 
    $action = FULL\DIFF\LOG
    $parameter = /sqlserver=TCP:" + $sqlserverinstance + " /SQLAUTH=INT /TSMOPTFile='" + $dsmoptfilename + "' /EXCLUDEDB=" + $exclude
    
    & $cmd
    

    当我回显命令时,它会报告我使用powershell命令行运行它的内容,但当我尝试使用&运行时从Powershell运行它时。它失败了以下

      

    术语

         
        

    C:\ PROGRA〜1 \的Tivoli \ TSM \ TDPSql \ tdpsqlc.exe     备份大师FULL     / SQLSERVER = TCP:     / SQLAUT H = INT     /TSMOPTFile=C:\Progra~1\Tivoli\TSM\TDPSql\dsm.opt / EXCLUDEDB = tempdb / LOGFILE = <logfile>

      
         

    未被识别为a的名称   cmdlet,函数,脚本文件或   可操作的程序。检查拼写   名称,或者如果包含路径,   验证路径是否正确   再试一次。在TDPSQLBackup.ps1:166   焦炭:6   +&amp; &LT;&LT;&LT;&LT; $ cmd&gt;&gt;的test2.txt       + CategoryInfo:ObjectNotFound:   (C:\ PROGRA〜1 \蒂夫... forsqlimran.txt:字符串)   [],CommandNotFoundException       + FullyQualifiedErrorId:CommandNotFoundException

    任何帮助都将非常感激。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用Invoke-Expression $cmd代替& $cmd.

答案 1 :(得分:0)

是的,最好使用Invoke-Expression,但如果您仍想使用&amp;你可以这样做。

$cmd = "C:\Windows\System32\notepad.exe"
$params = "C:\temp\file.txt"

& $cmd $params

将var用于程序文件,使用var作为参数。

答案 2 :(得分:0)

不是运行批处理命令,而是按照以下方式更好地尝试Powershell cmdlet

import-module "C:\Program Files\Tivoli\Flashcopymanager\fmmodulemmc.dll"
import-module "C:\Program Files\Tivoli\Flashcopymanager\fmmoduleSQL.dll"

$startTime = get-date
Backup-DpSqlComponent -Name AdventureWorks2012 -BackupDestination TSM -BackupMethod Legacy -Full
$endTime = get-date

$activity = Get-FcmMmcActivity -StartTime $startTime -EndTime $endTime
$activity

参考链接 http://www-01.ibm.com/support/docview.wss?uid=swg21974345