常用的DOS命令来了,获取某一门路下的全数文件名音讯

By admin in 4858.com on 2019年3月30日

常用的DOS命令来了,获取某一门路下的全数文件名音讯。贴代码了,那里运用的是C#支配台出口文件名到记事本中,文件名使用逗号隔绝:

  • windows下调用利用cmd命令搜索

    1. 文本有名的模特糊匹配
      //在目录E:/workspace中递归遍历查找已.c结尾的文件,并显示出来
      for /r E:/workspace %i in (*.c) do @echo %i

    2. 按部分内容字符串搜索文件
      //在E:/workspace目录下文件名以.c结尾的,并且这些文件中的内容里包含字符串main()的所有文件
      for /r E:/workspace %a in (*.c) do @findstr /im "main()" "%a"

DOSDisk Operation
System
,即磁盘操作系统,是人与电脑之间开始展览交互的一种艺术,有了DOS,人们就不用去深远摸底机器的硬件结构,也无需去死记硬背那2个枯燥的机器指令。只需通过某些像样于自然语言的DOS命令,就足以轻松地做到绝大多数的日常操作。

1.模块简介

os模块首要含有普遍的操作系统相关操作,借使开发者希望自身开销的Python应用能够与平台非亲非故,特别必要关心os那些模块。

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        public static string FileName = "";

        public static void Main(string[] args)
        {
            bool isContinute = true;
            WriteMessage("结束程序请输入1");
            WriteMessage("请输入要获取文件名的路径:");
            string path = Console.ReadLine();
            do
            {
                if (string.IsNullOrEmpty(path))
                {
                    WriteMessage("路径不存在!请重新输入");
                }
                else
                {
                    DirectoryInfo dir = new DirectoryInfo(path);
                    if (dir.Exists == false)
                    {
                        WriteMessage("路径不存在!请重新输入");
                    }
                    else
                    {
                        FileName = "";
                        GetChildDicsName(dir);
                        WriteMessage(FileName);
                        Console.WriteLine("获取该路径下文件名成功!你可以继续输入新的路径");
                    }
                }
                path = Console.ReadLine();
                isContinute = path != "1";
            } while (isContinute);
        }

        public static DirectoryInfo[] GetChildDicsName(DirectoryInfo dir)
        {
            FileInfo[] fileArray = dir.GetFiles();
            DirectoryInfo[] childDirs = dir.GetDirectories();

            foreach (FileInfo file in fileArray)
            {
                FileName += file.Name + ",";
            }
            if (childDirs.Length > 0)
            {
                foreach (DirectoryInfo dirChild in childDirs)
                {
                    GetChildDicsName(dirChild);
                }
            }
            return childDirs;
        }

        public static void WriteMessage(string message)
        {
            Console.WriteLine(message);
            //File.Create(@"C:\Users\Public\Desktop\test.txt");
            FileStream fs = File.Open(@"C:\Users\Public\Desktop\test.txt", FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(message);  //这里是写入的内容
            sw.Close();
            fs.Close();
        }
    }
}

DOS命令的交互方式须要二个控制台窗口,打开控制台有以下三种格局:

2.模块使用

 

  • linux 下调用控制台命令搜索

    1. 文本超级模特糊匹配
      //在目录/home/wxn/workspace中查找文件名以.c结尾的所有文件
      find /home/wxn/workspace -name '*.c'

    2. 安份守己文件内容搜素
      在目录/home/wxn/workspace中查找文件里还有字符main()的文件
      grep -r "main()" /home/wxn/workspace

    3. 综上所述查找
      //在目录/home/wxn/workspace中查找文件名以.c结尾的还要文件内容中包涵字符串main()的文书
      find /home/wxn/workspace -type f -name '*.c' | xargs grep "main()"

方式一:开端(桌面左下角)–>全部程序(windows10在“全体应用”)–>附属类小部件–>命令提醒符(windows10在“Windows
系统”)

2.1 os模块

1.
os.name
,输出字符串提示正在使用的平台,若是是Windows平台,输出’nt’,假设是Linux/Unix平台,输出’posix’。

import os

print os.name

控制台出口,

posix#如果是Linux/Unix平台
nt   #如果是Windows平台

2. os.getcwd,获取当前的做事目录,就是当下Python应用工作的目录。

import os

print os.getcwd()

支配台出口,

/home/zhb/workspace/PythonTest

3. os.listdir,再次回到钦赐目录下的具备文件和目录。

import os

print os.listdir(os.getcwd())

支配输出,

['test.py', '.pydevproject', 'PaperID_mapping_to_AffiliationsID.txt', '.settings', '.project', 'BrowseQueryResult.txt']

4. os.remove,删除多少个文本。

import os

os.remove("temp.txt")

除去当前目录下的temp.txt文件。

5. os.system,执行shell命令。

import os

os.system("ls -al")

列出当前工作目录下的具有文件与目录的音讯,控制输出,

total 3297204
drwxrwxr-x 3 zhb zhb       4096 10月 13 19:52 .
drwxrwxr-x 4 zhb zhb       4096 10月 10 20:44 ..
-rwxr--r-- 1 zhb zhb     106063 10月 13 19:03 BrowseQueryResult.txt
-rwxr--r-- 1 zhb zhb 3376199667  3月  5  2016 PaperID_mapping_to_AffiliationsID.txt
-rw-rw-r-- 1 zhb zhb        364 10月 10 20:44 .project
-rw-rw-r-- 1 zhb zhb        423 10月 10 20:44 .pydevproject
drwxrwxr-x 2 zhb zhb       4096 10月 11 15:26 .settings
-rw-rw-r-- 1 zhb zhb        241 10月 13 19:53 test.py

6. os.sep,取代操作系统特定的不二法门分隔符。

import os

print os.sep

决定台出口,

/#Linux/Unix操作系统输出
\#Windows操作系统输出

7. os.linesep,当前平台运用的行终止符。

>>> import os
>>> os.linesep

'\n'#Linux平台
'\r\n'#Windows平台

决定台音讯截图:

方式二:开头–>在搜寻框内输入“cmd”命令,回车即可打开控制台窗口。如下图所示:

2.2 os.path模块

1.
os.path.split
,再次来到3个门道的目录名和文书名,并不检查这些途径是或不是实际存在。

import os

print os.path.split("/home/workspace/PythonTest/test.py")

print os.path.split("/home/zhb/workspace/PythonTest/test.py")

支配输出,

('/home/workspace/PythonTest', 'test.py')
('/home/zhb/workspace/PythonTest', 'test.py')

2.
os.path.isfile
,os.path.isdir分别用于判断钦点路线是或不是三个文书和目录。

import os

print os.path.isfile("/home/zhb/workspace/PythonTest/temp.txt")

print os.path.isdir("/home/zhb/workspace/PythonTest")

print os.path.isfile("/home/zhb/workspace/PythonTest/temp.py")

print os.path.isdir("/home/workspace/PythonTest")

控制台出口,

True
True
False
False

3. os.path.exists,用于检查钦点的路径是不是真实的存在。

import os

print os.path.exists("/home/workspace/PythonTest/test.py")

print os.path.exists("/home/zhb/workspace/PythonTest/test.py")

操纵台出口,

False
True

4. os.path.abspath,得到钦点文件的相对路径。

import os

print os.path.abspath("test.py")

支配台出口,

/home/zhb/workspace/PythonTest/test.py

5. os.path.normpath,规范内定路线的字符串形式。

import os

print os.path.normpath("/home/zhb////////workspace/PythonTest/test.py")

决定台出口,

/home/zhb/workspace/PythonTest/test.py

6.
os.path.getsize
,得到文件大小,要是文件名为目录,则赶回目录的大小。

import os

print os.path.getsize("test.py")

print os.path.getsize("temp")

支配台出口,

285
4096

7. os.path.splitext,分离文件名与恢弘名。

import os

print os.path.splitext("test.py")

支配台出口,

('test', '.py')

8. os.path.join,连接目录与公事名或许目录。

import os

print os.path.join("/home/zhb/workspace/PythonTest","test.py")
print os.path.join("/home/zhb","workspace/PythonTest")

控制台出口,

/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest

9. os.path.basename,再次来到文件名。

import os

print os.path.basename("test.py")
print os.path.basename("/home/zhb/workspace/PythonTest/test.py")

控制台出口,

test.py
test.py

10. os.path.dirname,重回文件路径。

import os

print os.path.dirname("test.py")
print os.path.dirname("/home/zhb/workspace/PythonTest/test.py")

决定台出口,

/home/zhb/workspace/PythonTest

11. os.walk,遍历顶尖目录下的公文。

函数表明,os.walk(top, topdown=True, onerror=None, followlinks=False)

参数top,须求遍历的一流目录的路线,

参数topdown,暗许是”True”,正是第②再次回到一流目录下的文本,然后再遍历子目录中的文件。当topdown的值为”False”时,表示先遍历子目录中的文件,然后再重临超级目录中的文件。

参数onerror,暗许是值是None,表示忽略文件遍历时的失实,若是不为空,则提供1个自定义函数提醒错误音信后继续遍历可能抛出拾分终止遍历。

import os

top_dir = "/home/zhb/workspace/PythonTest"

for dir_path,subpath,files in os.walk(top_dir,True):
    for file in files:
        file_path = os.path.join(dir_path,file)
        print file_path

控制台出口,

/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt
/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs

将参数topdown设置为False,

/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt

12.
os.path.walk
,遍历文件夹下全体文件,先遍历超级目录,再遍历子目录中的文件,可是只产生文书路径,是子目录和文书的交集列表。

函数注脚,os.path.walk(top, func, arg),

参数top,要求遍历的头号目录路径。

参数func,表示回调函数,即对遍历路径实行拍卖的函数。

参数arg,是传递给回调函数的元组,为回调函数提供处理参数,arg能够为空。

import os

top_dir = "/home/zhb/workspace/PythonTest"

def find_file(arg,dir_path,files):
    for file in files:
        file_path = os.path.join(dir_path,file)
        print file_path

os.path.walk(top_dir,find_file,())

控制输出,

/home/zhb/workspace/PythonTest/temp#子目录
/home/zhb/workspace/PythonTest/test.py
/home/zhb/workspace/PythonTest/.pydevproject
/home/zhb/workspace/PythonTest/PaperID_mapping_to_AffiliationsID.txt
/home/zhb/workspace/PythonTest/.settings#子目录
/home/zhb/workspace/PythonTest/.project
/home/zhb/workspace/PythonTest/temp.txt
/home/zhb/workspace/PythonTest/BrowseQueryResult.txt
/home/zhb/workspace/PythonTest/temp/hello.txt
/home/zhb/workspace/PythonTest/.settings/org.eclipse.core.resources.prefs

4858.com 1

  • 系统文件重定向
    三种平台都协理文件重定向命令
    不无的主宰台命令,都得以在命令前边追加 “>>
    filepath”来讲输入到控制台打字与印刷的消息重定向到钦命的文件中,例如:
    find /home/wxn/workspace -type f -name '*.c' | xargs grep "main()" >> /home/wxn/find_result.txt

  • c语言中调用系统的控制台命令
    system("cmd")
    例如:
    system("grep -r \"main()\" /home/wxn/workspace")

4858.com 2

3.Reference

Python
模块学习:os模块

Python之os.walk和os.path.walk

 

若果不喜欢上边的风骨,能够对控制台窗口的性质举办转移,如背景观、字体大小、颜色等。修改决定台属性的不二法门:
一 、鼠标右击控制台窗口的顶部,现身如下界面:

4858.com 3

二 、点击属性,即可对控制台的不等性质进行转移,如下图所示:

4858.com 4

常用的DOS命令如下表:

指令格式 功能描述
盘名: 进去到钦赐的盘的根目录
dir 列出当下控制台所在的途径下的富有文件以及文件夹
cd 路径 进去到钦赐的门路下
cd / 回去当前路线的根目录
cd .. 重回上一流目录
md 文件夹的名目 在当下所在目录下开创1个内定名称的文件夹
rd 文件夹的名称 除去钦赐的文件(不能够用于删除非空的文书夹)
echo 数据>文件名 创立3个文本同时写入数据
type 文件名 查看钦定文件存款和储蓄的数量
del

文本名|删除内定的文书(del命令假使后边跟的是二个文件夹的名目,则删除内定文件夹的有所文件,注意里面的文书夹是不可能去除的)|
|cls|清屏(清除以前实施过的吩咐)|
|*|通配符,能够匹配任何的公文名|
|上下方向键|回到此前敲过的通令(键盘上操作)|
|set|查看全体的环境变量音信|
|set 环境变量名|查看钦命的条件变量|
|set 环境变量名=路径|修改钦赐的环境变量音讯|
|set 环境变量名= |清空钦定的环境变量新闻|
|set
环境变量名=新路线;%引用的环境变量名%|在本来的环境变量音讯基础上添加新的路线消息|
|exit|关闭当前控制台|

注意:在骨子里开发中大家兴许会选拔分歧的jdk版本调节和测试程序,平日使用不是很频仍,咱们只愿目的在于急需利用的时候才使用,然后就不再行使了,那么此时大家就能够透过上面的set相关命令来安插一时半刻环境变量音讯。

回想在处理器上多演练五遍额!!4858.com ,!

<a
href=”;   <a
href=”;

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有