我对批处理脚本有点麻烦,需要将配置文件中的值解析为变量.
适当地匿名化,文件的相关行看起来像
<?define ProductShortName="Foo" ?>
Run Code Online (Sandbox Code Playgroud)
我想设置一个变量Foo
.该字符串ProductShortName
足够独特,可以获取该行findstr
,但是我必须提取该值.似乎是正确的方法for /F
,但以下所有都给出了错误:
for /F "delims=^" usebackq" %%G in (`findstr /L "ProductShortName" "%~dp0Installer\Branding.wxi"`)
for /F "delims="" usebackq" %%G in (`findstr /L "ProductShortName" "%~dp0Installer\Branding.wxi"`)
for /F "delims=\" usebackq" %%G in (`findstr /L "ProductShortName" "%~dp0Installer\Branding.wxi"`)
for /F 'delims=^" usebackq' %%G in (`findstr /L "ProductShortName" "%~dp0Installer\Branding.wxi"`)
for /F 'delims=" usebackq' %%G in (`findstr /L "ProductShortName" "%~dp0Installer\Branding.wxi"`)
for /F "delims=" usebackq" %%G in (`findstr /L "ProductShortName" "%~dp0Installer\Branding.wxi"`)
Run Code Online (Sandbox Code Playgroud)
大部分沿着
usebackq" %G in (`findstr …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在NHibernate中使用全局过滤器,据我所知,我正在完成所有教程所做的事情,但我得到了一个例外.
我的.hbm.xml文件包含以下内容:
...
<class name="NHibernateSandbox.Foo, NHibernateSandbox" table="Foo">
...
<property column="Content" type="String" name="Content" not-null="true" length="100" />
<property column="Deleted" type="Boolean" name="Deleted" not-null="true" />
<filter name="Foo_Nondeleted" condition="Deleted = false" />
</class>
Run Code Online (Sandbox Code Playgroud)
然后我有一个简单的测试类:
Configuration cfg = new Configuration();
cfg.Configure();
using (ISessionFactory sf = cfg.BuildSessionFactory()) {
using (ISession session = sf.OpenSession()) {
session.EnableFilter("Foo_Nondeleted");
IQuery query = session.CreateQuery("FROM NHibernateSandbox.Foo");
foreach (Foo foo in query.List<Foo>()) {
Console.WriteLine(foo.Content);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我删除EnableFilter
它按预期工作的行:打印已删除和未删除的行.但是,有了这EnableFilter
行,我得到了一个NHibernateException
No such filter configured [Foo_Nondeleted]
at NHibernate.Impl.SessionFactoryImpl.GetFilterDefinition(String filterName)
at NHibernate.Impl.SessionImpl.EnableFilter(String filterName)
at …
Run Code Online (Sandbox Code Playgroud)