43

次のようなnodejsを介してスクリプトを実行しようとしています:

cd ..
doSomethingThere[]

ただし、これを行うには、複数の子プロセスを実行し、それらのプロセス間で環境の状態を引き継ぐ必要があります。私がやりたいことは次のとおりです。

var exec = require('child_process').exec;
var child1 = exec('cd ..', function (error, stdout, stderr) {
  var child2 = exec('cd ..', child1.environment, function (error, stdout, stderr) {
  });
});

または少なくとも:

var exec = require('child_process').exec;
var child1 = exec('cd ..', function (error, stdout, stderr) {
  var child2 = exec('cd ..', {cwd: child1.process.cwd()}, function (error, stdout, stderr) {
  });
});

これどうやってするの?

4

4 に答える 4

24

OS固有のコマンドラインユーティリティに頼らずに現在の作業ディレクトリを取得したい場合は、子プロセスを使用しながら、これらのものを抽象化する「バトルテスト済み」のshelljsライブラリを使用できます。

var sh = require("shelljs");
var cwd = sh.pwd();

これで、変数 cwd は、Linux、Windows、または freebsd のいずれを使用していても、現在の作業ディレクトリを保持します。

于 2014-05-11T09:15:40.153 に答える
2

子プロセスの PID を知っていて、pwdxがインストールされている場合 (Linux の可能性が高い)、ノードからそのコマンドを実行して、子プロセスの cwd を取得できます。

于 2013-04-11T03:48:04.737 に答える
0

options.cwdへの呼び出しの間を操作するのが最善の策だと思いますexecexecコールバックで、実装に活用できる可能性がありますthis.pwdthis.cwd

于 2015-04-21T21:04:59.543 に答える