2013-10-07 82 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已經解決了我的問題,並在功能上做了這項工作。我感謝你的時間。 –