Автоматизированная установка MSMQ с Powershell

Пользователи codelogic и harley корректен, но имеет в виду, знаете ли Вы, что строка является целым числом (например, 545) можно назвать интервал ("545") без первого кастинга для плавания.

, Если Ваши строки находятся в списке, Вы могли бы использовать функцию карты также.

>>> x = ["545.0", "545.6", "999.2"]
>>> map(float, x)
[545.0, 545.60000000000002, 999.20000000000005]
>>>

только хорошо, если они являются всеми одинаковыми тип.

6
задан RubyHaus 20 August 2009 в 23:55
поделиться

4 ответа

Я считаю, что вам следует использовать свой собственный командлет Powershell (Commandlet). По сути, вы наследуете от базового класса, переопределяете метод и этот метод, который вызывается при вызове этого командлета из Powershell. Таким образом, вы можете делать то, что вам нужно на C #, и просто вызывать это из Powershell. Рисунок примерно такой:

РЕДАКТИРОВАТЬ: Забыл ссылку на MSDN для создания командлетов: http://msdn.microsoft.com/en-us/library/dd878294 (VS.85) .aspx

[Cmdlet(VerbsCommunications.Get, "MyCmdlet")]
public class MyCmdlet : Cmdlet
{
    [Parameter(Mandatory=true)]
    public string SomeParam {get; set;}

    protected override void ProcessRecord()
    {
         WriteObject("The param you passed in was: " + SomeParam);
    }

}

Вы затем вызовет этот командлет из Powershell примерно так:

PS>Get-MyCmdlet -SomeParam 'whatever you want'

Затем, чтобы использовать MSMQ, в Интернете есть много примеров того, как это сделать из C #:

Вот только один из них ....

1
ответ дан 8 December 2019 в 18:39
поделиться

Может что-то вроде. Это немного многословно, но оно помогает продемонстрировать, что PowerShell может делать это без CmdLet.

# Loads the assembly into PowerShell (because it's not a pre-loaded one)
[Reflection.Assembly]::LoadWithPartialName( "System.Messaging" ) | Out-Null

# This is just an array which could also just be a file
$queueList = ( ".\q1", ".\q2", ".\q3", ".\q4" )

# Create the queues by piping the list into the creation function
# $_ refers to the current obect that the ForEach-Object is on
$queueList | ForEach-Object { [System.Messaging.MessageQueue]::Create( $_ ) }
6
ответ дан 8 December 2019 в 18:39
поделиться

If you are using the PowerShell Community Extensions (PSCX), it has cmdlets for creating and managing MSMQ:

  • Clear-MSMQueue
  • Get-MSMQueue
  • New-MSMQueue
  • Test-MSMQueue
6
ответ дан 8 December 2019 в 18:39
поделиться

Нет причин, по которым вы не можете использовать System.Messaging из PowerShell. Просто загрузите нужную сборку, и вы можете создавать / удалять / подключать свои очереди к своему сердцу. Создание настраиваемого командлета, безусловно, интересный вариант, но он может оказаться излишним в зависимости от того, что вы хотите (простой сценарий может помочь).

0
ответ дан 8 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: