1

私がやりたかったことは、コンピューターにインストールされているすべてのアプリケーションを取得することであり、Java を使用してコマンド プロンプトの /output コマンドを使用することにしました。私のコードは、コンピューターの次のコード行で正しく機能していました。

Process proc = rt.exec("wmic /output:C:\\Users\\Public\\Documents\\list.csv product get name,version /format:csv ");

ただし、別のコンピューターでプログラムを実行しようとすると、「無効な XSL 形式またはファイル名」エラーが発生します。他の問題を読んでみましたが、上記のコードの前に次のコード行を追加しました。

proc2 = rt.exec("xcopy /y C:\\Windows\\System32\\wbem\\en-US\\*.xsl C:\\Windows\\System32\\");

それでも何も起こりませんでした。エラーはまだあります。この問題で私を助けることができる人はいますか?

4

1 に答える 1

0

これは、Windows 7 WMICのバグです。たとえば、英語版の Windows インストールでオランダ語の地域設定を使用すると、WMIC は xsl ファイルC:\Windows\System32\wbem\nl-NLの場所ではなく、 内でxsl ファイルを検索しますC:\Windows\System32\wbem\en-US

回避策:

  1. C:\Windows\system32\wbem\en-US\*.xslファイルをC:\Windows\system32\wbem\フォルダーにコピーまたは移動します。
  2. Windows の言語バージョンに合わせて地域設定を変更し、ログアウトしてから再度ログインします。
  3. フルパスを指定してください: WMIC process get /format:"%WINDIR%\System32\wbem\en-US\csv".
于 2015-08-13T09:55:30.753 に答える