From 4a8aca7f9407878eebcfd168c9dcb60ab53dd692 Mon Sep 17 00:00:00 2001 From: Bartosz Sosnowski Date: Thu, 30 Jun 2016 16:58:24 +0200 Subject: [PATCH] doc: script with spaces spawn example for windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds an example of how to spawn a shell script under Windows with spaces in its filename. Ref: https://github.com/nodejs/node/issues/7367 PR-URL: https://github.com/nodejs/node/pull/8035 Reviewed-By: João Reis Reviewed-By: James M Snell --- doc/api/child_process.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/api/child_process.md b/doc/api/child_process.md index fe265afc122049..a01b0db9b25a8f 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -82,7 +82,8 @@ be launched using [`child_process.execFile()`][]. When running on Windows, `.bat and `.cmd` files can be invoked using [`child_process.spawn()`][] with the `shell` option set, with [`child_process.exec()`][], or by spawning `cmd.exe` and passing the `.bat` or `.cmd` file as an argument (which is what the `shell` option and -[`child_process.exec()`][] do). +[`child_process.exec()`][] do). In any case, if the script filename contains +spaces it needs to be quoted. ```js // On Windows Only ... @@ -110,6 +111,13 @@ exec('my.bat', (err, stdout, stderr) => { } console.log(stdout); }); + +// Script with spaces in the filename: +const bat = spawn('"my script.cmd"', ['a', 'b'], { shell:true }); +// or: +exec('"my script.cmd" a b', (err, stdout, stderr) => { + // ... +}); ``` ### child_process.exec(command[, options][, callback])