我目前正在为Powershell 2.0中的Subversion命令行编写一个包装器。我希望能够尽可能接近命令行的工作方式。因此,例如,我需要"svn“命令:
info: Display information about a local or remote item.
usage: info [TARGET[@REV]...]
Print information about each TARGET (default: '.').
TARGET may be either a working-copy path or URL. If specified, REV
determines in which revision the target is first looked up.
Valid options:
-r [--revision] ARG : ARG (some commands also take ARG1:ARG2 range)
A revision argument can be one of:
NUMBER revision number
'{' DATE '}' revision at start of the date
'HEAD' latest in repository
'BASE' base rev of item's working copy
'COMMITTED' last commit at or before BASE
'PREV' revision just before COMMITTED
-R [--recursive] : descend recursively, same as --depth=infinity
--depth ARG : limit operation by depth ARG ('empty', 'files',
'immediates', or 'infinity')
--targets ARG : pass contents of file ARG as additional args
--incremental : give output suitable for concatenation
--xml : output in XML
--changelist [--cl] ARG : operate only on members of changelist ARG
Global options:
--username ARG : specify a username ARG
--password ARG : specify a password ARG
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting
--trust-server-cert : accept SSL server certificates from unknown
certificate authorities without prompting (but only
with '--non-interactive')
--config-dir ARG : read user configuration files from directory ARG
--config-option ARG : set user configuration option in the format:
FILE:SECTION:OPTION=[VALUE]
For example:
servers:global:http-library=serf..。要映射到一个函数,如下所示:
function Svn-Info {
param(
$revision,
$depth,
$targets,
$incremental,
$changelist,
$username,
$password,
$no_auth_cache,
$non_interactive,
$trust_server_cert,
$config_dir,
$config_option,
[Parameter(Mandatory=$false,ValueFromRemainingArguments=$true)]
[String[]]
$targetsAtRev
)我想这样称呼它:
Svn-Info "D:\svn\"@25345 "D:\svn\common\"@35922 -username MyUserName -password MyPassword不幸的是,它试图将前两个参数绑定到$revision和$depth (基本上,前两个尚未绑定的参数)。所以,从本质上说,我能以某种方式阻止参数对任意数量的参数进行位置绑定吗?
发布于 2013-10-10 14:06:24
试试看这个param decl:
function Svn-Info {
[CmdletBinding()]
param(
$revision,
$depth,
$targets,
$incremental,
$changelist,
$username,
$password,
$no_auth_cache,
$non_interactive,
$trust_server_cert,
$config_dir,
$config_option,
[Parameter(Mandatory=$false,ValueFromRemainingArguments=$true, Position=0)]
[String[]]
$targetsAtRev
)https://stackoverflow.com/questions/19296269
复制相似问题