小编Joe*_*oey的帖子

ASSIGN赢得XP命令行输出到变量

我想将以下脚本从linux shell翻译成Windows XP shell

GPSID=$(awk '/GPSID/ {print $3}' gora.RTK ) 
awk -v variable=${GPSID} 'BEGIN {printf "Numer seryjny : " variable,$1}' >>out.txt
Run Code Online (Sandbox Code Playgroud)

第二行已被翻译; 问题是在windows中定义一个包含shell输出的变量:-(

linux windows shell awk translation

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

最常见的内存/资源泄漏错误

所有优秀的C++程序员都知道如何避免泄漏内存(或套接字等资源):

  1. 总是使用智能指针,i.e.:std::auto_ptr, boost::shared_ptr.
  2. 始终注意对象的所有权:谁拥有,谁引用,谁负责等.

但是,内存泄漏仍然会发生.当您在程序中发现内存泄漏时,即使您使用上述技术,也要指出最常见的问题.

我开始:

有时您忘记将基类的析构函数定义为虚拟.所以派生类引用的所有派生类都没有被正确销毁并因此泄露.

c++ memory-leaks

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

点击率模式下的AES 256

ctr模式可以将块密码用作流密码,但在此模式下加密有多强?

encryption cryptography aes

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

Powershell中的测试路径行为

我正在尝试在powershell中编写一个脚本来批量转换视频文件.

我打算使用它的方法是去一些充满视频文件的文件夹并运行它.它使用可以在"命令行模式"(名为handbrake)中运行的转换程序,并在文件扩展名之前保存转换后的文件,并附加"-android".例如,如果我在文件夹中有一个名为video1.avi的文件,则在运行脚本后该文件夹有2个文件:video1.avi和video1-android.avi

我想这样做的原因是我可以检查每个视频文件是否有转换后的版本(名称附加了-android).如果是这样,请跳过该文件的转换.

而这就是我有所收获的地方.问题是Test-Path的行为(我用来测试文件是否存在的cmdlet).

如果视频文件具有"不寻常"的名称(例如在我的情况下,它是视频[long] .avi),如果您尝试检查该文件是否存在,则Test-Path始终返回False.

您可以通过以下方式轻松测试:

转到空文件夹,运行记事本以创建名称中带有"["的文件:

&notepad test[x].txt
Run Code Online (Sandbox Code Playgroud)

保存文件

然后这样做:

Get-ChildItem | ForEach-Object {Test-Path $_.FullName}
Run Code Online (Sandbox Code Playgroud)

它不会回归真实!应该对吗?好吧,如果文件名称中有"["(我没有检查任何其他特殊字符),则不会

我意识到,如果你逃避"["和"]",它就有效

Test-Path 'test`[x`].txt'
Run Code Online (Sandbox Code Playgroud)

返回true.

我该如何解决这个问题?我希望能够:给定文件的BaseName,将其附加到"-android.avi"并检查是否存在具有该名称的文件.

谢谢,芮

powershell

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

如何在Java中维护相当长的类?

我目前正在RowSet用Java 编写接口的实现,甚至在派生自BaseRowSet(它本身超过4k LOC)之后,该类已经超过1200行,没有编写任何代码 - 只是方法声明.

现在,我知道Java有几个课程甚至更长,包括java.awt.Component可怕的10k LOC,但目前我仍然很难理解如何RowSet工作(不是这个问题的主题)以及我将如何理解如果以后需要更改,请再次上课.

是否有很好的方法来构建这样的野兽,或者我应该把它写下来,一次一种方法,并希望以后能够最好地理解它?

(相关:我正在维护一个长达4万行的Java类...问题? - 但是这只是问它是否有问题.我很确定它是,但我无法逃避,我担心.)

java size maintenance class

5
推荐指数
0
解决办法
578
查看次数

在C#中对数据进行分组并进行聚合计算

List<object>object包含的地方有这样的东西Cat,TypeItems.

Cat  | Type | Items
--------------------
 A   |  P   |  3
 A   |  Q   |  4
 A   |  R   |  2
 A   |  P   |  1
 A   |  Q   |  5
 B   |  P   |  2
 B   |  Q   |  1
 B   |  R   |  3
 B   |  P   |  9
Run Code Online (Sandbox Code Playgroud)

我想要做的是计算类型的平均项,所以产生这样的东西:

Cat  | Type | Items
--------------------
 A   |  P   |  2
 A   |  Q   |  4.5
 A …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

使用Java中的cmd复制文件的问题

我正在尝试使用copy命令将一堆具有特定扩展名的文件从一个文件夹复制到另一个文件夹,heres wat im doing,

 String[] command = new String[3];
 command[0] = "cmd";
 command[1] = "/c";
 command[2] = "copy C:\\output\\html\\*.txt C:\\output\\";

 ProcessBuilder copyFiles = new ProcessBuilder(command);
 p = copyFiles.start();
 p.waitFor();
Run Code Online (Sandbox Code Playgroud)

问题是,这个代码适用于小于5左右的文件,但只是停止响应文件的数量更多(即使是15个文件)!并且文件也不被复制!! 我不知道问题是什么,如果有人可以提供帮助,我会很高兴!:)

java windows command-line runtime process

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

打开adobe reader打印PDF的批处理文件没有结束/关闭

我在一个批处理文件中有以下代码,由 PHP 脚本调用shell_exec()

"C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe" 
/t "D:\xampp\htdocs\instrument\app\webroot\Repair Tickets\%1.pdf"
\\hnurenfp01\Accounts_FS-1128MFP
Run Code Online (Sandbox Code Playgroud)

参数 %1 是作为参数从 PHP 脚本发送到批处理文件的文件名。

观察到的行为:

  • PHP 页面成功调用具有正确参数的批处理文件
  • AcroRd32.exe 的两个实例在服务器上静默启动
  • PDF 文件打印到网络打印机
  • AcroRd32.exe 实例未结束/关闭
  • 批处理文件保持运行(直到手动结束 AcroRd32.exe 进程)
  • PHP 脚本继续执行,因此阻止客户端计算机执行任何进一步操作

预期行为:

  • PHP 页面成功调用具有正确参数的批处理文件
  • AcroRd32.exe 的两个实例在服务器上静默启动
  • PDF 文件打印到网络打印机
  • AcroRd32.exe 实例结束/关闭
  • 批处理脚本完成(这反过来应该释放 PHP 脚本)
  • PHP 脚本继续并最终结束,以允许最终用户继续他们的工作

失败的解决方案:

  • 在批处理文件中使用 TASKKILL 在打印后结束 AcroRd32.exe 进程,但即使使用 /F(强制)标志,AcroRd32.exe 仍保持打开状态。当我手动结束 AcroRd32.exe 进程时,批处理文件将继续,然后执行 TASKKILL 行,这当然会返回“找不到进程”错误,因为它不再存在。因此,打印后控制权似乎没有返回到批处理文件,它仍然保留在 AcroRd32.exe 中。

有谁知道如何在 PDF 打印后关闭 Adob​​e Reader?

php batch-file shell-exec

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

更改Windows中符号链接的目标

如何更改已存在的符号链接的目标.任何解决方案都可行:console,powershell等.

重要的想法是以原子方式进行此更改,以便删除链接然后创建新的解决方案对我不起作用.

windows filesystems symlink

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

如何在 BenchmarkDotNet 中对同一非 NuGet 库的两个不同版本进行基准测试?

我正在尝试使用 BenchmarkDotNet 为库准备性能回归测试。这要求我将相同的测试与旧(稳定)版本的库进行比较。现在,可以选择为作业提供不同版本的 NuGet 包。似乎没有一个选项可以代替引用不同的程序集。

我尝试过自定义构建配置:

  <ItemGroup Condition="'$(Configuration)' == 'Baseline'">
    <Reference Include="MyAssembly">
      <HintPath>lib\baseline\MyAssembly.dll</HintPath>
    </Reference>
  </ItemGroup>

  <ItemGroup Condition="'$(Configuration)' != 'Baseline'">
    <Reference Include="MyAssembly">
      <HintPath>lib\current\MyAssembly.dll</HintPath>
    </Reference>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

但是当尝试通过 BenchmarkDotNet 使用这些配置时

    public static void Main(string[] args) {
      var summary = BenchmarkRunner.Run(typeof(Program).Assembly,
        DefaultConfig.Instance
          .With(Job.Default.WithCustomBuildConfiguration("Baseline"))
          .With(Job.Default.WithCustomBuildConfiguration("Current")));
    }
Run Code Online (Sandbox Code Playgroud)

我收到构建错误,表明该程序集根本没有被引用。BenchmarkDotNet 还有助于清除它创建的任何临时工件,因此我什至无法查看生成的项目文件来弄清楚它的外观。

这里唯一的解决方法是将库包装在 NuGet 包中吗?或者在(对于这种情况看似稀疏的)文档中是否有我忽略的东西?

这个问题似乎与我遇到的构建错误隐约相关。

benchmarkdotnet

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