热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【xinsir】分享一个查找文件的脚手架

1program.command('find').action(name{2if(name){3inquirer4.prompt([5{6type:&

1 program.command(‘find ‘).action(name => {
2 if (name) {
3 inquirer
4 .prompt([
5 {
6 type: ‘input‘,
7 name: ‘isAll‘,
8 message: ‘输入的文件名是否是文件全称 yes/no‘,
9 validate(input) {
10 let arr = [‘yes‘, ‘no‘];
11 if (!arr.includes(input)) {
12 return ‘请输入yes/no‘;
13 }
14 return true;
15 }
16 }
17 ])
18 .then(answers => {
19 const spinner = ora(`正在寻找${name}...`);
20 spinner.start();
21 try {
22 let isAll = answers.isAll === ‘yes‘; // 是否为全称
23 let files = []; // 找到文件名的路径存储
24 // 递归遍历目录下的文件
25 function readDirSync(path) {
26 var pa = fs.readdirSync(path);
27 pa.forEach(function(ele, index) {
28 var info = fs.statSync(path + ‘/‘ + ele);
29 if (info.isDirectory()) {
30 readDirSync(path + ‘/‘ + ele);
31 } else {
32 if((!isAll && ele.includes(name)) || (isAll && ele === name)) {
33 files.push(path + ‘/‘ + ele);
34 }
35 }
36 });
37 }
38 readDirSync(‘.‘);
39 if (files.length > 0) {
40 spinner.succeed();
41 files = files.join(‘\n‘);
42 console.log(symbols.success, chalk.green(‘文件已找到,文件路径如下:\n‘ + files));
43 } else {
44 spinner.fail();
45 console.log(symbols.error, chalk.red(`该目录下未含有名为‘${name}‘的文件`));
46 }
47 } catch (error) {
48 console.log(symbols.error, chalk.red(error));
49 spinner.fail();
50 console.log(symbols.error, chalk.red(‘在寻找文件过程出错‘));
51 }
52 });
53 } else {
55 console.log(
56 symbols.error,
57 chalk.red(‘请输入完整命令:xinsir find xx(寻找的文件名)‘)
58 );
59 }
60 });
61 program.parse(process.argv);

效果如下:

技术分享图片

 

 


推荐阅读
  • 如何解决TS1219:实验性装饰器功能可能在未来版本中更改的问题
    本文介绍了两种方法来解决TS1219错误:通过VSCode设置启用实验性装饰器,或在项目根目录下创建配置文件(jsconfig.json或tsconfig.json)。 ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • hdu4539郑厂长系列故事——排兵布阵http:acm.hdu.edu.cnshowproblem.php?pid4539问题描述:给你一个n行m列的0-1矩阵,0表示不 ... [详细]
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • WinMain 函数详解及示例
    本文详细介绍了 WinMain 函数的参数及其用途,并提供了一个具体的示例代码来解析 WinMain 函数的实现。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • packagecom.panchan.tsmese.utils;importjava.lang.reflect.ParameterizedType;importjava.lang. ... [详细]
  • 本文介绍了Java编程语言的基础知识,包括其历史背景、主要特性以及如何安装和配置JDK。此外,还详细讲解了如何编写和运行第一个Java程序,并简要介绍了Eclipse集成开发环境的安装和使用。 ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
author-avatar
手机用户2502905381
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有