いつもお世話になってます。
Runtime.execを使用してディレクトリ情報を
txtファイルに出力しようとしているのですが、
現在のカレントディレクトリのものは出力できるのですが、
例えば、dドライブのtestフォルダに移動して
出力というのをどうやればいいのかわかりません。
ネットでいろいろ調べてみたものの、どうしてもわかりませんでした。
よろしくお願いします。
下記はカレントディレクトリの情報をそのままtxtファイルに出力したものです。
String command2 = "cmd /c dir > d:\\testest.txt";
Process process = Runtime.getRuntime().exec(command2);
No.4
- 回答日時:
#3です。
>例えば、dドライブのtestフォルダに移動して
すみません。よく読んでなかったです。
訂正です。
"cmd /K cd /d d:" → "cmd /K cd /d d:\\test"
"dir > testest.txt" → "dir > test.txt"
No.3ベストアンサー
- 回答日時:
こんにちは。
try {
Process process = Runtime.getRuntime().exec("cmd /K cd /d d:");
PrintWriter pw = new PrintWriter(process.getOutputStream(), true);
pw.println("dir > testest.txt");
pw.println("exit");
//↑これは余分かも
pw.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
こんなふうにしたら、できました。
でも、素直に
Runtime.getRuntime().exec("cmd /C dir d:\\ > d:\\testest.txt");
こっちのほうが早いかも。
この回答への補足
PrintWriter pw = new PrintWriter(process.getOutputStream(), true);
pw.println("dir > testest.txt");
このように書くことができるのも勉強になりました。
意味をよく理解したいと思います。
ありがとうございます!できました!
どちらでもできたのですが、cdで移動して、外部コマンド実行ができるかどうか知りたかったので、本当に良かったです。
回答していただいた皆様ほんとうにありがとうございました。
No.1
- 回答日時:
…ちょっと試してみましたが、無理そうですね…。
もしかしたらできるかもしれませんが…。
Runtime.getRuntime().exec(cmd1); //ディレクトリ移動
Runtime.getRuntime().exec(cmd2); //ディレクトリ情報出力
としても、
cmd1の実行が完了した時点でプロセスが終了してしまうので、cmd2を実行するときはまた新たなプロセスが生成されるからだと思います。
つまり、イメージ的には
・コマンドプロンプトを開いてcmd1を実行してコマンドプロンプトを閉じる
・また新たにコマンドプロンプトを開いてcmd2を実行してコマンドプロンプトを閉じる
という感じでしょうか。
もし、ファイルサイズ、更新日時、ディレクトリかファイルかという情報がいらなくて、単にフィル名を出力したいというのであれば、treeコマンドを使用してはいかがでしょうか?
もしくはちょっと面倒ですが、java.io.Fileクラスを使って情報を出力するとか。
カレントディレクトリを移動して実行というのを
行いと思っています。
java.io.Fileクラスを使って情報の出力も勉強したいと思います。回答ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xismoについてです!開こうとす...
-
COMとユーザの対話型しりとりプ...
-
VB6.0で作ったプロジェクトが起...
-
VBスクリプトのWshShell.Runに...
-
LINK : fatal error LNK1104に...
-
VBAでUWSCが起動できない
-
なぜプロセスはファイルにアク...
-
「xdoc2txt」を利用した文書検...
-
実行ファイルと実行モジュール...
-
プログラム内でのワイルドカー...
-
HSP ファイル名の変更の仕方
-
VC++から引数付きexeファイルの...
-
VB6で、C言語の(argv,argc)み...
-
コンポーネント`MSCOMM32.cox'...
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
JavaScriptでコマンドプ...
-
Tomcat停止後の処理継続について
-
コマンドプロンプトで外のexeや...
-
VBAでEXEファイルを動かす方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
xismoについてです!開こうとす...
-
VC++から引数付きexeファイルの...
-
JavaScriptでコマンドプ...
-
LINK : fatal error LNK1104に...
-
VBAでEXEファイルを動かす方法...
-
c/c++ ビルドしたにもかかわら...
-
WScript.Echo と msgbox
-
64bit環境で32bitのodbc参照
-
VBAでMP3を鳴らしたい
-
コマンドプロンプトで外のexeや...
-
batからexeを実行し戻り値を受...
-
ファイルアイコンの左下に緑の□...
-
コンパイル ./aと./a.out の違い
-
htaファイルが実行されません
-
jarファイルとjava.exeの関連付...
-
JAVA .jarファイルに再圧縮する...
-
VB6.0で作ったプロジェクトが起...
-
以下のように複数のファイルを...
おすすめ情報