通过ReactJs代码运行shell命令

时间:2019-04-12 12:29:08

标签: reactjs shell shelljs

我有一个存储在本地计算机中的文件,并且也连接了打印机。因此,通常,如果我想将文件的打印件提供给连接的打印机,我将在命令提示符下运行以下命令:

cd <path where the file is locally stored>
copy <filename.ext> <portname in which the printer is connected>

例如,如果我在路径/Users/chandrani.chatterjee/Desktop/TestFolder处有一个文件,而在端口lpt1处有一个打印机,则可以在命令提示符下编写以下命令

cd /Users/chandrani.chatterjee/Desktop/TestFolder
copy testfilename.txt lpt1

所以这会打印我的testfilename.txt

不,我想在ReactJs中单击按钮来实现此目的。 我在网上搜索了有关shellJs的信息,但不确定如何使用该命令触发命令。

我尝试过

var sh = require('shelljs');
const { stdout, stderr, code } = sh.exec('cd /Users/chandrani.chatterjee/Desktop/TestFolder', { silent: true });

我也尝试过

var sh = require('shelljs');
var output = sh.exec('java -version', {silent:true}).stdout;

但在两种情况下都出现错误

  

无法读取null的属性“ stdout”

如何正确执行此操作?

编辑:

例如,在.Net中,可以使用以下代码实现相同的目的:

function create_send_file() { 

                                var fso = new ActiveXObject("Scripting.FileSystemObject"); 
                                var s = fso.CreateTextFile("c:\\FilePrn\\label.prn", true); 
                                s.WriteLine("some string"); 
                                s.Close(); 
                                var newpath = fso.CopyFile("c:\\FilePrn\\label.prn", "lpt1"); 

                        }

1 个答案:

答案 0 :(得分:0)

您的Reactapp在浏览器中运行,因此无法访问您的Shell。

为此,您将需要创建一个React应用程序可以调用的Web服务。在这里,您可以执行shell命令,将结果返回到浏览器中的React。