我正在尝试导出Windows事件日志,但不是根据数量限制导出的事件,而是根据事件记录的时间限制.我试图在Windows 7和更新版本上这样做.到目前为止,我的工作重点是使用wevtutil.
我正在使用wevtutil,我的命令行现在是:wevtutil Application events.evtx这里的问题是我导出整个日志,这可能非常大,所以我想将它限制在最近2周.
我找到了这篇文章,但首先它似乎没有在我的系统上产生任何输出(是的,我已经改变了日期和时间),其次它似乎依赖于我试图避免的日期格式.
这是我运行的修改过的命令:
wevtutil qe Application "/q:*[System[TimeCreated[@SystemTime>='2012-10-02T00:00:00' and @SystemTime<'2012-10-17T00:00:00']]]" /f:text
Run Code Online (Sandbox Code Playgroud)
我不得不用实际符号替换<和>,因为我得到了语法错误.此命令产生空输出.
我的队友向我介绍了新的练习写作方法,它不会返回无效.
public class Test {
public Test doCalculations() {
//code
return this;
}
public Test appendTitle(String test) {
//code
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
他们建议返回对象本身而不是返回void.他们说这种方法的优势之一就是你可以连锁方法.
而不是写:
while(1) {
test.appendTitle("aaa");
test.doCalculations();
map.add(test);
}
Run Code Online (Sandbox Code Playgroud)
你可以编写更优雅的代码:
while(1) {
map.add(test.appendTitle("aaa").doCalculations());
}
Run Code Online (Sandbox Code Playgroud)
这种方法可能有什么缺点?你建议把它包括在日常使用中吗?
我已经看到SoF上的评论或答案,说明将强制转换操作符重载到bool是危险的,我宁愿选择void* operator.我仍然想问一下,在我的用例中使用这个运算符是否危险,如果是,为什么.
我实现了一个简单的几何库,其中一个最基本的类是我用以下方式定义的一个点:
struct point {
double x, y;
bool real;
point(double x_, double y_): x(x_), y(y_), real(true) {}
point(): x(0), y(0), real(true) {}
operator bool() {
return real;
}
};
Run Code Online (Sandbox Code Playgroud)
我将尝试解释为什么我需要使用强制转换操作符来布尔.我有另一个名为line的类,我有一个声明如下的函数:
point intersect(const line& a, const line& b);
Run Code Online (Sandbox Code Playgroud)
现在已经重载转换运算符为bool点我可以写两者:point p = intersect(a,b);和if (intersect(a,b))因此得到任一的两条线的交叉点或检查,如果两条线相交.我也在其他地方使用它,但我相信这个例子足以显示强制转换运算符的用法.我对演员操作员的使用是否危险,如果是,你可以举一个例子,当效果不符合预期时?
编辑:由于juanchopanza的一个小小的补充:在这个项目中我只能使用c ++ 11,所以我无法使运算符显式化.
我知道模式r'([a-z]+)\1+'是在搜索字符串中搜索重复的多字符模式,但我不明白为什么如果k2答案不是'aaaaa'(5'a'):
import re
k1 = re.search(r'([a-z]+)\1+', 'aaaa')
k2 = re.search(r'([a-z]+)\1+', 'aaaaa')
k3 = re.search(r'([a-z]+)\1+', 'aaaaaa')
print(k1) # <_sre.SRE_Match object; span=(0, 4), match='aaaa'>
print(k2) # <_sre.SRE_Match object; span=(0, 4), match='aaaa'>
print(k3) # <_sre.SRE_Match object; span=(0, 6), match='aaaaaa'>
Run Code Online (Sandbox Code Playgroud)
Python 3.6.1
我正在尝试编写一个批处理脚本,以安全的方式获取当前日,月和年(即独立于日期格式).不幸的是,我发现的所有互联网资源都提出了类似的建
SET CURRENT_DATE=%DATE: =0%
SET YEAR=%DATE:~-4%
SET MONTH=%DATE:~3,2%
SET DAY=%DATE:~5,2%
Run Code Online (Sandbox Code Playgroud)
如果我的日期格式为yyyy/mm/dd或yyyy-mm-dd,但如果格式为yy-mm-dd或其他格式,则无效.是否有安全的方式来获得年,月和日?
还有一个问题 - 是否可以知道日分隔符是什么(/在第一种情况下和-其他情况下).
我正在尝试设置一个在名称中执行纠错的算法.我的方法是拥有一个具有正确名称的数据库,计算每个数据库之间的编辑距离和输入的名称,然后建议最接近的5或10.
此任务与单词中的标准纠错有很大不同,因为某些名称可能会被首字母替换.例如,"Jonathan Smith"和"J. Smith"实际上相当接近并且可以很容易地被认为是相同的名称,因此如果不是0,编辑距离应该非常小.另一个挑战是,某些名称可能会以不同的方式写入相同.例如Shnaider,Schneider是由具有不同语言环境的人编写的同名版本(我猜有更好的例子).另一种情况 - 想象一下所有可能出现的错误Jawaharlal Nehru,其中大多数错误与真实姓名无关.再次,他们中的大多数可能会发音相似.
显然Lucene的纠错算法对我没有帮助,因为它没有处理上述情况.
所以我的问题是:你知道任何能够在名称中进行纠错的库吗?你能提出一些处理上述案例的算法吗?
我对c ++或java中的库感兴趣.至于算法提议,任何语言或伪代码都可以.
是否可以使用grep仅匹配预先指定范围内的数字行?例如,我想列出所有[1024, 2048]包含单词'error'的日志范围内的数字行.
我想保留'-n'功能,即在文件中有匹配行的编号.
我的应用程序有一个 installshield 安装程序。现在我为应用程序创建了一个小升级,并且我的一些组件中的一些文件发生了变化。不幸的是,在小升级后,文件没有被替换,而是保留了旧内容。这些是文本文件,因此很容易验证。我还在升级期间尝试覆盖的每个文件的属性中明确检查了始终覆盖。
我厌倦了创建自定义操作来执行 installshield 应该执行的操作。您知道为什么会发生这种情况吗,我如何强制 installshield 覆盖这些文件?
我正在使用 installshield 2008,真的,真的,真的希望我有一个选择来改变它。
函数式编程语言通常用于不可变数据结构,但通过结构共享保持高效.例如,您处理某些信息地图,如果插入元素,则不会修改现有地图,而是创建新的更新版本.为避免大量复制和内存使用,映射将在两个实例之间共享(尽可能好)未更改的数据.
如果有一些模板库提供像C++这样的数据结构的地图,我会感兴趣.我在LLVM的内部类旁边搜索了一下,什么都没发现.
我想实现一个RDP客户端,C++它能够获取屏幕所有像素的颜色值并将它们转储到文件中.我知道这在概念上与RDP的工作方式不同,但我需要它用于我的应用程序.我正在尝试使用freerdp,但我不确定如何有效地编写一个简单地将所有像素转储到文件中的客户端.
到目前为止,我最好的尝试是使用该功能,gdi_GetPixel_32bpp但当然,依次为每个像素调用此函数远非有效.
使用其他库的解决方案也将受到高度赞赏.