我正在尝试以编程方式从 Java 扫描文件,并希望在命令行上执行此操作。
我直接在命令行中使用它(简单地导航到文件夹并执行命令:
c:Users3XXXXX8Desktop>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"""
}
不知道如何分解它。
String [] commands = {
""C:\Program Files\Windows Defender\MpCmdRun.exe" -Scan -ScanType 3 -File "C:\UploadedFiles\file""
};
这对我有用^。
我不需要"cmd/c"