小编Tec*_*270的帖子

使用Powershell或命令行在Windows中创建压缩/压缩文件夹

我正在创建一个夜间数据库模式文件,并希望将每晚创建的所有文件(每个数据库一个)放入一个文件夹并压缩该文件夹.我有一个创建数据库的的schema.Only创建脚本,然后将所有的文件到一个新的文件夹中的PowerShell脚本.问题在于该过程的压缩部分.

有没有人知道是否可以使用预先安装的处理文件夹压缩的Windows实用程序来完成此操作?

如果可能的话,最好使用该实用程序,而不是像7zip这样的东西(我不想在每个客户的服务器上安装7zip,如果我问他们可能需要IT年数才能完成).

windows compression powershell command-line

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

如何在Jenkins中声明全局变量并在每个单独项目中的MSBuild任务中使用它

我正在将我们的CI平台从CruiseControl转换为Jenkins,并且似乎无法想象它应该相对简单(免责声明 - 我不是CI或构建自动化专家,但这被倾倒到我的膝盖上我发现它很有趣)

在CruiseControl中,我能够声明这样的变量:

<cb:define rootdir="J:\SOURCES\" />
<cb:define logdir="J:\SOURCES\buildlogs" />
<cb:define iisdir="J:\IIS\" />
<cb:define artifacts="artifacts\" />
Run Code Online (Sandbox Code Playgroud)

然后将它们用作MSBuild任务的一部分

<msbuild>
      <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
      <workingDirectory>$(rootdir)$(ProjectName)</workingDirectory>
      <projectFile>$(ProjectName).sln</projectFile>
      <buildArgs>/p:BuildDate="1";OutDir="$(iisdir)$(ProjectName)\bin\\";WebProjectOutputDir="$(iisdir)$(ProjectName)\\"</buildArgs>
      <targets>Rebuild;$(ProjectName)</targets>
      <timeout>180</timeout>
      <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
Run Code Online (Sandbox Code Playgroud)

如果根目录或IIS目录发生更改,则可以立即将其轻松应用于所有项目.我们有大约60个项目设置,因此按项目完成这个项目将非常耗时.将此迁移到Jenkins,MSBuild命令行参数现在看起来像这样(部分样本但包含相关内容):

OutDir="J:\IIS\ProjectName\bin\\";WebProjectOutputDir="J:\IIS\ProjectName\\"
Run Code Online (Sandbox Code Playgroud)

IIS目录是硬编码的.我需要更像这样的东西:

OutDir="${IIS_DIR}\ProjectName\bin\\";WebProjectOutputDir="${ITEM_ROOTDIR}\ProjectName\\"
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?我尝试了配置切片插件,这很有用,但从我看到的不适合这种需要

msbuild build-automation jenkins

7
推荐指数
2
解决办法
2万
查看次数

比较两个MongoDB集合之间的文档

我有两个现有的集合,需要根据现有的两个集合来填充第三个集合.需要比较的两个集合具有以下架构:

Settings collection
{
  "Identifier":"ABC123",
  "C":"1",
  "U":"V",
  "Low":116,
  "High":124,
  "ImportLogId":1
}

Data collection
{
  "Identifier":"ABC123",
  "C":"1",
  "U":"V",
  "Date":"11/6/2013 12AM",
  "Value":128,
  "ImportLogId": 1
}
Run Code Online (Sandbox Code Playgroud)

我是MongoDB和NoSQL的新手,所以我很难掌握如何做到这一点.SQL看起来像这样

SELECT s.Identifier, r.ReadValue, r.U, r.C, r.Date
FROM Settings s
JOIN Reads r
  ON s.Identifier = r.Identifier
  AND s.C = r.C
  AND s.U = r.U
WHERE (r.Value <= s.Low OR r.Value >= s.High)
Run Code Online (Sandbox Code Playgroud)

在这种情况下使用示例数据,我想返回一条记录,因为Data集合中的值大于设置集合中的高值.这可能是使用Mongo查询或map reduce,还是这个糟糕的集合结构(也许所有这些都应该在一个集合中)?

还有一些附加说明:"设置"集合实际上每个"标识符"实际上只有1条记录.每个"标识符"的数据集合将包含许多记录.这个过程可能同时扫描数十万个文档,因此资源考虑有点重要

mongodb

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

刀具引导错误 - 成功验证但未获得此操作的授权

ERROR: You authenticated successfully to https:<chef_server_url> as <user> but you are not authorized for this action Response: missing create permission

我正在为Windows AWS实例运行一个非常基本的bootstrap命令

knife bootstrap windows winrm ....

目前正在现场运行Chef服务器,此时尚未托管.使用knife尝试创建新组时,我也会得到同样的错误.我通过SSH连接到Chef服务器并在运行时验证了我的用户是否已列出

sudo chef-server-ctl list-server-admins

所以看来我已被授予服务器管理员权限.尝试通过Web UI查看和创建内容时,我也看到了相同的错误.我几乎整天都在试图解决这个问题而没有运气

chef-infra knife

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