需求來(lái)源于生活 。在日常開發(fā)中,經(jīng)常會(huì)頻繁地做一些重復(fù)性的操作,作為一名程序員,解放雙手的時(shí)刻到了 。
比如說(shuō):批量修改某些文件的后綴,我對(duì)于一些shell或者win下的命令不是很熟悉,稍微了解的就是自己的開發(fā)語(yǔ)言,所以用熟悉的工具做事還是可以帶來(lái)一些成就感的 。
下面我準(zhǔn)備針對(duì)這個(gè)小小的需求開發(fā)一個(gè)自己的命令行,當(dāng)然如果能幫助到其他人,那就更加地滿足了 。閑話不多說(shuō),下面直接開始 。
需求整理
- 可以對(duì)某個(gè)文件夾下的所有文件進(jìn)行后綴的修改可以限定某類后綴修改為指定的后綴可以指定目標(biāo)文件夾同時(shí)可以隨機(jī)重命名
環(huán)境 : nodejs編輯工具 : sublime 大體流程 - 在github上創(chuàng)建自己想要的倉(cāng)庫(kù)changeext(命名)將倉(cāng)庫(kù)clone到本地進(jìn)行開發(fā)、測(cè)試發(fā)布到github發(fā)布到npm安裝到本地進(jìn)行使用大功告成
1.確定目標(biāo)文件夾、一些相關(guān)的參數(shù)(是否重命名、源后綴、目標(biāo)后綴)2.獲得目標(biāo)文件夾下的所有文件(符合源后綴)3.對(duì)符合條件的文件進(jìn)行重命名(修改后綴)4.結(jié)束,對(duì),流程很簡(jiǎn)單,實(shí)現(xiàn)起來(lái)也不麻煩,但是起碼這是自己的小工具啊,哪怕網(wǎng)上再多也是別人的 開發(fā)中使用的module:minimist(命令行參數(shù)處理) fs(操作文件) path(處理文件路徑) colors(讓打印信息更加好看) 核心代碼如下:#!/usr/bin/env node//作為命令行工具,第一行就是上面的這貨,千萬(wàn)別少了var fs = require(\\\'fs\\\');var path = require(\\\'path\\\');var colors = require(\\\'colors\\\');//指定一些顏色信息colors.setTheme({error : \\\'red\\\',success : \\\'green\\\',info : \\\'yellow\\\'});//獲得命令行的參數(shù)var argv = require("minimist")(process.argv.slice(2), {alias: {\\\'input\\\': \\\'i\\\',\\\'target\\\': \\\'t\\\',\\\'directory\\\': \\\'d\\\',\\\'loop\\\' : \\\'l\\\',\\\'random\\\' : \\\'r\\\'},string: [\\\'input\\\', \\\'target\\\',\\\'directory\\\'],boolean : [\\\'loop\\\',\\\'random\\\'],\\\'default\\\': {\\\'directory\\\': process.cwd()}});//打印幫助信息if (argv.help) {console.log("Usage:".info);console.log("changeext --help// print help information".success);console.log("changeext txt js// change \\\'txt\\\' to \\\'js\\\' ".success);console.log("changeext -i txt// input file extensions".success);console.log("changeext -t js// target file extensions".success);console.log("changeext -d /home/// target directory for change".success);console.log("changeext -l// loop file directory for change file extensions".success);console.log("changeext txt js -r// get some random name");process.exit(0);}//隨機(jī)獲得一個(gè)隨機(jī)字符串function getRandom(){var counter = 0;return (function() {var guid = ( new Date()).toString( 32 ),i = 0;for ( ; i
猜你喜歡
- 項(xiàng)目管理整個(gè)流程圖 多項(xiàng)目管理的主要方法有哪些
- 哪些項(xiàng)目屬于基建項(xiàng)目范圍 基建是什么意思基
- 中印最大的茶葉合資項(xiàng)目浙江塔塔茶業(yè)科技公司簽約
- 體檢項(xiàng)目有哪些 你了解了嗎
- spv公司和項(xiàng)目公司區(qū)別 spv公司是什么意思
- 網(wǎng)站項(xiàng)目中pjm什么職位
- 長(zhǎng)久靠譜網(wǎng)賺項(xiàng)目有哪些,月入5000的十大網(wǎng)賺項(xiàng)目推薦
- 體育運(yùn)動(dòng)都有哪些 體育運(yùn)動(dòng)項(xiàng)目
- 適合小本創(chuàng)業(yè)的項(xiàng)目有哪些,40個(gè)小本生意成功案例
- 如何在ppt中插入水平項(xiàng)目符號(hào)列表?ppt水平項(xiàng)目符號(hào)列表添加教程
