2013-10-07 108 views
0

我正在尝试使用循环批处理文件启动CMD应用程序ssdeep并将文件参数传递给它,然后保持打开ssdeep窗口以将输出块复制到剪贴板我有以下代码:使用批处理文件启动带文件参数的ssdeep

@ECHO OFF 
:start 
SET /p filetohash= What file would you like to fuzzy hash? 
START C:\Users\Josh\Desktop\ssdeep-2.10\ssdeep-2.10\ssdeep.exe %filetohash% 
PAUSE 
goto start 

这允许我运行批处理文件,然后我可以拖放一个文件到散列到CMD窗口中。在点击返回时,ssdeep CMD窗口出现在散列文件的那一刻,然后关闭。这给我留下了批处理文件生成的第一个窗口,即请求按下按键。

我想让第二个CMD窗口保持打开状态,以便我可以复制散列。与批处理文件中使用的PAUSE类似,但我需要将其应用于所创建的第二个CMD窗口。

我不确定如何搜索这些信息。我搜索了批处理文件的信息。我用这些资源来获得迄今:预先

https://superuser.com/questions/582095/how-to-create-a-batch-file-that-will-run-cmd-and-a-exe-with-parameters

Batch files : How to leave the console window open

谢谢,

PTW-105

回答

1

使用/ b开关到开始命令 - 看看是否做你需要的(离开暂停)。

start "" /b C:\Users\Josh\Desktop\ssdeep-2.10\ssdeep-2.10\ssdeep.exe %filetohash% 

如果您在命令中添加了带引号的项目,则空双引号将保护启动命令。

尝试此命令在您的桌面上创建hash.txt - 删除pause - 如果打印到STDOUT,它应该包含信息。它可以被解析为仅提取散列:如果您将这些信息添加到您的问题中,它应该采用我们可以阅读的格式,并且可以看到如何解析它。

start "" /b C:\Users\Josh\Desktop\ssdeep-2.10\ssdeep-2.10\ssdeep.exe %filetohash% >"%userprofile%\desktop\hash.txt" 
+0

这会奏效。为了更好地学习下一次,是否有办法让它更清洁?我猜测/ b开关告诉开始命令加载结果在当前窗口? 输出看起来像这样: 你想模糊散列? C:\ Users \ Josh \ Desktop \ ACM \ acm \ addons \ FHQ _Accessories_v1.2.7z 按任意键继续。 。 。 ssdeep,1.1 - 块大小:哈希:哈希,文件名 393216:ImlppcDhQ7qSB9rr1RwSc8pIwMSAx4A7CyCCAlRVEznjrI3OrtBEblXevxumZEnB:ImlrVX1R Dcvvx7CLC2/Enf25XUxjMCc, “C:\用户\乔希\桌面\ ACM \ ACM \插件\ FHQ_Accessories_v1 .2.7z” 上述 –

+0

看到我的编辑。 – foxidrive

+0

感谢您的快速响应。我试图不在这时将文件导出到磁盘。 “”/ b已经解决了我的问题,并在功能上做了这项工作。我感谢你的时间。 –