小编Pet*_*lor的帖子

在'for/F`的`delims`选项中转义双引号

我对批处理脚本有点麻烦,需要将配置文件中的值解析为变量.

适当地匿名化,文件的相关行看起来像

<?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)

escaping batch-file

30
推荐指数
3
解决办法
5万
查看次数

为什么NHibernate说我的过滤器没有配置?

我正在尝试在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行,我得到了一个N​​HibernateException

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)

nhibernate nhibernate-configuration

1
推荐指数
1
解决办法
1185
查看次数