这是一个运行记事本程序并粘贴存储在该程序本身中的特定文本的Java程序代码。
我想知道您是否可以向我解释String vbs
的值,以及File file
中的("cscript //NoLogo " + file.getPath())
和Process p
。
如果您很慷慨,请向我解释整个代码。
我是Java的初学者,可能不完全是这样,但是如果您想判断从0到10,我将是1.5 / 10
import java.io.File;
import java.io.FileWriter;
import javax.swing.JTextField;
public class PasteToNotepad {
public static void main(String[] args) throws Exception {
String text = "Some text for testing.";
JTextField textField = new JTextField(text);
textField.setSelectionStart(0);
textField.setSelectionEnd(text.length() - 1);
textField.copy();
String vbs = ""
+ "Set WshShell = WScript.CreateObject(\"WScript.Shell\")\n"
+ "WshShell.Run \"notepad\", 9\n"
+ "WScript.Sleep 500\n"
+ "WshShell.SendKeys \"^V\"";
File file = File.createTempFile("PrintDialog", ".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
p.waitFor();
}
}
最佳答案
尽管这个问题主要不是关于cscript //NoLogo
,但不管它的标题是什么,它在谷歌搜索中的用词仍然很好,所以让我们也详细地回答一下。
我不确定他们为什么称其为“徽标”,但这正是您从显示的内置帮助@MByD中可能会想到的。但是为了过度完成...
C:\prompt>cscript spam.js
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
C:\prompt>cscript //NoLogo spam.js
C:\prompt>
因此,如果您要传递输出,并且不希望所有这些Microsoft样板文件,请
\\Nologo
-ify。C:\prompt>cscript spam.js > out.txt
C:\prompt>more out.txt
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
C:\prompt>cscript spam.js //NoLogo > out.txt
C:\prompt>more out.txt
C:\prompt>
(
spam.js
中包含var spam = "spam";
。)而且,哇,这是一种使文本进入记事本的令人费解的方法。我猜这更多是关于教如何写文件以及如何用Java编写
exec
命令?