Запустите команду tdpsql из powershell - PullRequest
1 голос
/ 27 апреля 2011

У меня есть скрипт, который требует 3 обязательных входных параметра, которые будут использоваться для запуска команды резервного копирования для tdpsql.

  1. тип (FULL, DIFF или LOG)
  2. SQLServerinstancename
  3. База данных (SYSTEM, ALL,)

В сценарии 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>

не распознается как имя командлета, функции, файла сценарияили работоспособная программа. Проверьте правильность написания имени или, если путь был указан, убедитесь, что путь указан правильно, и повторите попытку.В TDPSQLBackup.ps1: 166 char: 6 + & <<<< $ cmd >> test2.txt + CategoryInfo: ObjectNotFound: (C: \ Progra ~ 1 \ Tiv ... forsqlimran.txt: String) [], CommandNotFoundException +FullyQualifiedErrorId: CommandNotFoundException

Любая помощь будет по достоинству оценена.

Ответы [ 3 ]

1 голос
/ 27 апреля 2011

Вы можете попробовать Invoke-Expression $cmd вместо & $cmd.

0 голосов
/ 17 апреля 2017

Вместо выполнения пакетной команды лучше использовать командлеты Powershell следующим образом:

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

0 голосов
/ 27 апреля 2011

Да, лучше использовать Invoke-Expression, но если вы все еще хотите использовать & вы можете сделать это следующим образом.

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

& $cmd $params

Использование var для программного файла и var для параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...