小编Luk*_*ell的帖子

如何在批处理文件中循环匹配通配符的文件

我有一组基本文件名,每个名称'f'都有两个文件,'f.in'和'f.out'.我想编写一个批处理文件(在Windows XP中),它通过所有文件名,每个文件名应该:

  • 显示基本名称'f'
  • 对'f.in'执行操作
  • 对'f.out'执行另一个操作

除了搜索*.in(或*.out)之外,我没有办法列出基本文件名集.

command-line windows-xp batch-file

182
推荐指数
3
解决办法
29万
查看次数

如何(以及是否)使用初始数据填充rails应用程序

我有一个用户必须登录的rails应用程序.因此,为了使应用程序可用,系统中必须有一个初始用户才能登录第一个人(然后他们可以创建后续用户).到目前为止,我已经使用迁移将特殊用户添加到数据库中.

在提出这个问题后,似乎我应该使用db:schema:load,而不是运行迁移,在新的开发机器上设置新的数据库.不幸的是,这似乎不包括插入数据的迁移,只包括设置表,密钥等的迁移.

我的问题是,处理这种情况的最佳方法是什么:

  1. 有没有办法让d:s:l包含数据插入迁移?
  2. 我根本不应该使用迁移来以这种方式插入数据吗?
  3. 我是否应该根据数据预先填充数据库?我应该更新应用程序代码,以便它处理没有用户优雅的情况,并允许从应用程序内实时创建初始用户帐户吗?
  4. 还有其他选择吗?:)

data-migration ruby-on-rails

61
推荐指数
6
解决办法
3万
查看次数

Rails模型验证器打破了早期的迁移

我在rails应用程序中有一系列迁移,其中包括以下步骤:

  1. 创建"用户"模型的基本版本
  2. 创建此模型的实例 - 系统中至少需要一个初始用户,以便您可以登录并开始使用它
  3. 更新"用户"模型以添加新字段/列.

现在我在这个新字段/列上使用"validates_inclusion_of".这在我的初始开发机器上运行良好,该机器已经有一个应用了这些迁移的数据库.但是,如果我转到新计算机并运行所有迁移,则第2步失败,因为validates_inclusion_of失败,因为迁移3中的字段尚未添加到模型类中.

作为一种解决方法,我可以注释掉"验证_..."行,运行迁移并取消注释,但这并不好.

更好的方法是重新排序我的迁移,以便在添加所有列之后,用户创建(步骤2)最后.

我是铁杆新手,所以我想我会问这种情况的首选方法是:)

migration validation ruby-on-rails

5
推荐指数
2
解决办法
1078
查看次数

如何使用Lucene MultiFieldQueryParser更改默认连接

我有一些代码使用Lucene将默认连接运算符保留为OR,我想将其更改为AND.有些代码只使用了一个简单的QueryParser,这很好 - 我可以在这些实例上调用setDefaultOperator.

不幸的是,在一个地方代码使用MultiFieldQueryParser,并调用静态"parse"方法(使用String,String [],BooleanClause.Occur [],Analyzer),因此似乎setDefaultOperator无法帮助,因为它是一个实例方法.

有没有办法继续使用相同的解析器,但默认的连接是否已更改?

lucene operators

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

How to get NegotiateStream to use Kerberos?

After asking this question, I've been trying to use NegotiateStream to authenticate a Windows client against a Java server. It seems that Java doesn't have great NTLM library support, so I've been working on the assumption that I'd have to use Kerberos, which Java seems to support much better (via the GSS-API).

问题是 NegotiateStream 似乎每次都尝试使用 NTLM。文档表明它可以使用任何一种,但没有指定它如何选择。我在 API 中看不到任何选项来控制它选择哪种机制。有办法吗?

我有自己的服务主体名称,我的客户端代码如下所示:

string spn = "<service-name>/<my-pc-name>"
TcpClient client = new TcpClient(server, port);
NetworkStream stream = client.GetStream();
NegotiateStream neg = new NegotiateStream(stream, true); …
Run Code Online (Sandbox Code Playgroud)

authentication negotiate

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

将二进制数据从URL复制到Java中的文件,无需中间副本

我正在更新一些旧代码以从URL而不是从数据库中获取一些二进制数据(数据将被移出数据库,并且可以通过HTTP访问).数据库API似乎直接将数据提供为原始字节数组,并且有问题的代码使用BufferedOutputStream将此数组写入文件.

我对Java一点都不熟悉,但是谷歌上的一些谷歌搜索让我看到了这段代码:

URL u = new URL("my-url-string");
URLConnection uc = u.openConnection();
uc.connect();
InputStream in = uc.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
final int BUF_SIZE = 1 << 8;
byte[] buffer = new byte[BUF_SIZE];
int bytesRead = -1;
while((bytesRead = in.read(buffer)) > -1) {
    out.write(buffer, 0, bytesRead);
}
in.close();
fileBytes = out.toByteArray();
Run Code Online (Sandbox Code Playgroud)

这似乎在大多数情况下都有效,但是当复制的数据很大时我遇到了问题 - 对于使用旧代码工作正常的数据项,我得到一个OutOfMemoryError.

我猜这是因为这个版本的代码同时在内存中有多个数据副本,而原始代码没有.

有没有一种简单的方法可以从URL中获取二进制数据并将其保存在文件中,而不会在内存中产生多个副本的成本?

java url copy file

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

C++标准状态

我最近没有跟上C++世界.这些天的标准究竟在哪里?

TR1是否被采用?

有TR2吗?

这些与C++ 0x有什么关系?归入了吗?

已经就线程做出了决定吗?

c++ standards

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