Запуск Windows Сканера в командной строке для файла От Java - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь сканировать файл программно с Java и хочу сделать это в командной строке.

У меня это работает прямо в командной строке (просто перейдите в папку и выполните команду:

c:\Users\3XXXXX8\Desktop>cd "C:\\Program Files\\Windows Defender" && MpCmdRun.exe -Scan -ScanType 3 -File "C:\\UploadedFiles\\file"
Scan starting...
Scan finished.
Scanning C:\\UploadedFiles\\file found no threats.

Я хочу, чтобы она работала с Java. Я запутался в строке, которая Я должен кормить Процесс . Я нашел несколько мест, которые я должен кормить в командной строке с \ c, потому что это вдовы. Но это не работает. Программа выглядит следующим образом. Строка [] команды должны быть исправлены.

import java.io.*;

    public class CmdTest {
        public static void main(String[] args) throws Exception {
            String [] commands = {
                "cmd /c \"cd \"C:\\Program Files\\Windows Defender\" && MpCmdRun.exe -Scan -ScanType 3 -File \"C:\\UploadedFiles\\file\"\""
            }
            ProcessBuilder builder = new ProcessBuilder(commands);
            builder.redirectErrorStream(true);
            Process p = builder.start();
            BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line;
            while ( (line = r.readLine()) != null) {
                System.out.println(line);
            }
        }
    }

Пожалуйста, помогите.

Некоторые другие комбинации, которые я пробовал для командной строки:

String [] commands = { "cmd.exe", "/c", "cd \"C:\\Program Files\\Windows Security Client\"",
                    "MpCmdRun.exe -Scan -ScanType 3 -File C:\\UploadedFiles\\" + file.getName()
            };

и

String [] commands = {
            "cmd /c \"cd \"C:\\Program Files\\Windows Defender\" && MpCmdRun.exe -Scan -ScanType 3 -File \"C:\\UploadedFiles\\file\"\""
        }


String [] commands = {
                "cmd \"cd \"C:\\Program Files\\Windows Defender\" && MpCmdRun.exe -Scan -ScanType 3 -File \"C:\\UploadedFiles\\file\"\""
            }

Не уверен, как это разбить.

1 Ответ

1 голос
/ 06 февраля 2020
String [] commands = {
            "\"C:\\Program Files\\Windows Defender\\MpCmdRun.exe\" -Scan -ScanType 3 -File \"C:\\UploadedFiles\\file\""
        };

Это сработало для меня ^.

Мне не нужно было "cmd / c"

...