工作中一直需要对一些官网进行文件复制,并且替换内部的一些信息,以前都是手动操作的,或者通过自己写的firefox扩展来进行文件操作的。
现在前端有nodejs了,为什么不用nodejs写个一键式的呢~~
1.复制目录
复制文件的时候,如果直接创建一个不存在的文件目录下就不成功了。要上级目录存在才可以。(nodejs API接触时间不长,如有有误,谢谢指正)。
这样在写入文件的时候就检测一下目录是否存在,不存在则判断上级目录,之后一级一级目录创建回来,之后就可以复制文件了
var dirCache = {};//缓存减少判断 function makedir (pathStr, callback) { if (dirCache[pathStr] == 1) { callback(); } else { fs.exists(pathStr, function (exists) { if (exists == true) { dirCache[pathStr] == 1; callback(); } else { makedir(path.dirname(pathStr), function () { fs.mkdir(pathStr, function () { dirCache[pathStr] == 1; callback(); }) }); } }) } };
2.后来还是考虑通过CMD命令“xcopy”实现,但是试了好9,直接执行,可是一直不行,有解决的,欢迎指正
var exec = require('child_process').exec; exec('xcopy D:\\WORK_new\\odinQuest D:\\WORK_new\\newGame /s /e /Q /Y /I', function (error, stdout, stderr) { if (error !== null) { //console.log('exec error: ' + error); } });
后来通过将CMD命令写入文件,通过call的方式调用的,就可以了。
fs.writeFile('xcopy.bat', cmdstr, function (err) { if (err) throw err; var exec = require('child_process').exec; exec('call "'+process.cwd()+'/xcopy.bat', function (error, stdout, stderr) { if (error !== null) { //console.log('exec error: ' + error); } }); });
嗯,代码写的也就那样,都是一步步的异步嵌套,就不放出来了,省的被笑话
以上所述就是本文的全部内容了,希望大家能够喜欢。
本文向大家介绍C#调用CMD命令实例,包括了C#调用CMD命令实例的使用技巧和注意事项,需要的朋友参考一下 有时候有一些DOS命令需要我们在执行程序的时候调用,这需要使用C#提供的相关接口。 代码如下,很简单,相信大家都能看懂,我就不赘述了。
本文向大家介绍Electron 调用命令行(cmd),包括了Electron 调用命令行(cmd)的使用技巧和注意事项,需要的朋友参考一下 因为最近的项目需求,需要在 Electron 客户端启动的时候启动 nginx 服务,所以研究了一下怎么在 Electron 调用 命令行。 因为 Electron 基于 Chromium 和 Node.js,可以直接使用 Node.js 的 API 和一些包
我构建了一个应用程序,我想为这个应用程序编写一个用nodejs编写的安装程序。安装程序应该做:-更新操作系统-更改ip/主机名-安装nginx、nodejs、节点附加模块(pg、pm2等),postgresql-从git hub下载应用程序-为配置文件制作控制器-使用pm2运行应用程序 我在internet上搜索,发现了来自节点的child_进程,我试图用它运行bash命令,但在“apt get
我试图调用cmd命令从Java使用进程构建器。然而,我面临的问题很少。 > 这个程序有时没有给出正确的输出。如果我使用process.destroy()方法并得到exitValue,它显示1。如果我注释掉process.destroy()方法,异常出现,进程没有退出。我猜可能是线程竞争条件。但是,没有process.waitFor()的影响。它有时仍然会产生错误的输出。我们如何测试这些情况并找出问
问题内容: 有什么方法可以在一个命令中复制多个目录以减少层数?例如,代替: 我想要做: 但是,这会复制目录的 内容 …但是我想复制 目录本身 。 问题答案: 这是copy命令的记录行为: 如果是目录,则将复制目录的整个内容,包括文件系统元数据。 注意:目录本身不会被复制,只是其内容被复制。 我建议的最佳解决方法是更改构建文件夹中的目录布局,将三个文件夹移动到一个父文件夹下,然后添加父文件夹。
本文向大家介绍复制 Windows cmd 窗口命令行的信息方法,包括了复制 Windows cmd 窗口命令行的信息方法的使用技巧和注意事项,需要的朋友参考一下 先是鼠标右键选择标记,然后再右键点一下就OK了。 在我没发现之前,我一直以为是,标记了自己要选中的内容后,还是和一般的复制粘贴一样。直接Ctrl + c,但是怎么都不行,有时候可以,有时候不可以,我就纳闷了,什么情况。 多点几下,发现,