2016-05-07 5 views
0

Windowsプラットフォーム上のノードでexec関数で使用するためのディレクトリ文字列変数 '。\ app \ src \ algorithms'を作成します。 しかし、文字列に二重バックスラッシュを使用しても正しく動作しません。 これは私の試みです。ダブルバックスラッシュはノード内に同じものを表示します

λ node 
> directory = '.\app\src\algorithms'; 
'.appsrcalgorithms' 
> directory = '.\\app\\src\\algorithms'; 
'.\\app\\src\\algorithms' 

答えて

2

あなたが持っているものは問題ありません。内部的にはダブルバックラッシュとして格納されています。これはバックスラッシュをエスケープする方法がJS文字列で機能するからです。ノードREPLが実際の値を表示しています。それを使用すると、正しく表示されるはずです。

> directory = '.\\app\\src\\algorithms'; 
'.\\app\\src\\algorithms' 
> console.log(directory) 
.\app\src\algorithms 
> exec('explorer.exe ' + directory); //works 
2

私はパスとプラットフォームの独立した作業を処理する最善の方法はパスモジュールを使用していると思います。例えば。

var path = require('path'); 
var directory = path.join('.', 'app', 'src', 'algorithms') 
関連する問題