The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

PowerShell - Wraps PowerShell commands;

VERSION

version 1.00

SYNOPSIS

    use PowerShell;

    # Minimally
    PowerShell
        ->new('Mount-DiskImage, 
            ['Image' => 'C:\\tmp\\foo.iso'], 
            ['StorageType' => 'ISO'])
        ->pipe_to('Get-Volume')
        ->execute();

    # Or explicitly
    PowerShell
        ->new(
            PowerShell::Pipeline
                ->new(
                    PowerShell::Cmdlet
                        ->new('Mount-DiskImage')
                        ->parameter('Image', 'C:\\tmp\\foo.iso')
                        ->parameter('StorageType', 'ISO'))
                ->add(
                    PowerShell::Cmdlet
                        ->new('Get-Volume')))
        ->execute();

    # Or just get the command
    my $command = PowerShell
        ->new('Mount-DiskImage', [Image => 'C:\\tmp\\foo.iso'])
        ->command();

    # and execute it yourself
    my $result = `$command`;

DESCRIPTION

I know, I know, why would you want a scripting language to wrap a scripting language... In the real world, it happens. This can be really useful for automation that needs to do things that are exposed via PowerShell that would otherwise require jumping through more extensive hoops. It can also be quite useful when ssh'ing to a remote system to execute PowerShell commands. Anyway, the intent of this module is to simplify that use case.

CONSTRUCTORS

new($command, [@cmdlet_parameters])

Creates a new PowerShell command wrapper. $command is either a PowerShell::Pipeline, a PowerShell::Cmdlet, or a string containing a cmdlet name. If a string containing a cmdlet name, then @cmdlet_parameters contains the parameters to that cmdlet.

METHODS

command()

Returns a string form of the command.

execute()

Executes the command.

pipe_to($cmdlet, [@cmdlet_parameter)

Pipes the output to $cmdlet.

AUTHOR

Lucas Theisen <lucastheisen@pastdev.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Lucas Theisen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

SEE ALSO

Please see those modules/websites for more information related to this module.