3

これは、メモ帳プログラムを実行し、このプログラム自体に保存されている特定のテキストを貼り付ける 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();
   }
 }
4

2 に答える 2

3

この質問主に に関するものではありませんでした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.jsvar spam = "spam";います。)

そして、うわー、それはテキストをメモ帳に取り込むための恐ろしく複雑な方法です。execおそらく、ファイルへの書き込み方法とJavaからのコマンドを教えることがもっと重要だと思いますか?

于 2015-02-17T16:00:37.860 に答える