我有一个PowerShell函数,它可以更改注册表项值.码:
param(
[Parameter()] [switch]$CreateNewChild,
[Parameter(Mandatory=$true)] [string]$PropertyType
)
Run Code Online (Sandbox Code Playgroud)
它有一个参数"CreateNewChild",如果设置了该标志,该函数将创建key属性,即使找不到它也是如此.参数"PropertyType"必须是必需的,但仅限于已设置"CreateNewChild"标志.
问题是,如何强制执行参数,但仅在指定了其他参数的情况下?
好的,我一直在玩它.这确实有效:
param(
[Parameter(ParameterSetName="one")]
[switch]$DoNotCreateNewChild,
[string]$KeyPath,
[string]$Name,
[string]$NewValue,
[Parameter(ParameterSetName="two")]
[switch]$CreateNewChild,
[Parameter(ParameterSetName="two",Mandatory=$true)]
[string]$PropertyType
)
Run Code Online (Sandbox Code Playgroud)
但是,这意味着$ KeyPath,$ Name和$ NewValue不再是强制性的.将"one"参数设置为必需会中断代码("参数集无法解析"错误).这些参数集令人困惑.我确定有办法,但我无法弄清楚如何做到这一点.
我正在尝试使用cmake编译cpp-netlib.
我的配置:OS X 10.9.1 Mavericks + Xcode 5.0.2 cpp-netlib 0.11.0 cmake 2.8.12.2 Boost 1.55.0
因为我试图让整个事情与OS X和iOS 7一起工作,所以我使用以下脚本创建了一个Boost框架:https: //github.com/mgrebenets/boost-xcode5-iosx
我做了一个没有c ++ 11的干净安装,例如:"$ ./boost.sh clean -v 1.55.0"
这产生了两个"boost.framework"目录,一个用于OS X,第二个用于iOS.我已经在"Build Phases> Link Binary With Libraries"中成功地将OS X Boost框架添加到我的Xcode项目中,并测试了Boost文档中的boost :: regex示例,该文档在我的Mac上运行良好.
但是,当我开始制作cpp-netlib时,我遇到了问题.当我尝试运行时:
$ cmake -DCMAKE_BUILD_TYPE = Debug -DCMAKE_C_COMPILER = gcc -DCMAKE_CXX_COMPILER = g ++ ../cpp-netlib-0.11.0-final/
它产生以下输出:
-- The C compiler identification is Clang 5.0.0
-- The CXX compiler identification is Clang 5.0.0
-- Check for working C compiler: /usr/bin/gcc
-- Check for working …Run Code Online (Sandbox Code Playgroud) 又一个RegEx问题.我有很多PHP文件要从数组('foo','bar')更改为新样式['foo','bar']
到目前为止,我想出了这个:
array\(([^\(]*?)\)
Run Code Online (Sandbox Code Playgroud)
但它没有采用多行定义.我尝试过类似的东西,但更糟糕的是,因为它拾取了错误的右括号:
(?s)array\(([^\(].*?)\)
Run Code Online (Sandbox Code Playgroud)
例如,一些需要替换的数据:
$foobar = $this->foobar('foo_bar', array(
'foo' => array('foobar' => array('barfoo')),
'bar' => array(
'bar' => 'foobar',
'foo' => 'barfoo',
)));
Run Code Online (Sandbox Code Playgroud)
所以上面的例子看起来像这样:
$foobar = $this->foobar('foo_bar', [
'foo' => ['foobar' => ['barfoo']],
'bar' => [
'bar' => 'foobar',
'foo' => 'barfoo',
]]);
Run Code Online (Sandbox Code Playgroud)
任何人?谢谢!
boost ×1
c++ ×1
cpp-netlib ×1
dependencies ×1
flags ×1
ios ×1
macos ×1
parameters ×1
php ×1
powershell ×1
regex ×1
registry ×1
sublimetext ×1
sublimetext3 ×1