暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Windows 下使用命令行操作文件总结(速查)

Anion的小黑屋 2022-09-18
805

这次先浅水一下,干货刚弄完环境和代码,马上就能出炉了,待我整理整理文档…

一、CMD

创建文件

cd . > anioner.txt

type nul > anioner.txt

删除文件

del anioner.txt

del F S Q anioner.txt	// 强行删除文件

del F S Q C:/anion*.txt	// 强行删除符合 anion*.txt 的文件,也就是所有后缀是 txt 的文件

重命名文件

ren old.txt new.txt

移动文件

move C:/old.txt D:/new.txt	// 也可以使用这个命令来重命名文件

写入文件

echo test > anioner.txt	// 会多出来一个换行符

echo ^<php eval($_POST['admin']); ?^> > anioner.txt	// 用^来转义尖括号

>anioner.txt set p="test"<nul	// 此方法不会有多余的换行符

>anioner.txt set p="<php eval($_POST['admin']); ?>"<nul	// 不需要转义

追加文件内容

echo Test >> anioner.txt	// 会多出来换行符

>>anioner.txt set p="test"<null	// 不会有多余的换行符

读取文件

type anioner.txt

搜索文件

for r C:/ %i in (anioner.txt) do @echo %i	// 精确查找 C:/ 下面有没有 anioner.txt 文件

for r C:/ %i in (anion*.txt) do @echo %i	// 模糊查找 C:/ 下面有没有符合 anion*.txt 的文件

dir s/a-d/b C:\anioner.txt  	精确查找 C:/ 下的某个目录有没有 anioner.txt 文件

dir /s/a-d/b C:\anion*.txt // 	精确查找 C:/ 下的某个目录有没有匹配 anion*.txt 的文件

搜索文件内容

findstr /s /n "test" C:\*	// 精确搜索 C:/ 下有没有文件内容包含了 test 字符串

findstr /s /n /i "te*" C:\*	// 模糊搜索 C:/ 下有没有文件内容符合表达式 te* 的文件,/i 表示不区分大小写

Base64
编码

certutil -encode raw.txt base64.txt	// 将 raw.txt 里的内容编码存到 base64.txt

certutil -decode base64.txt raw.txt	// 将 base64.txt 里的内容解码存到 raw.txt

Hex
编码

certutil -encodehex raw.txt hex.txt	// 将 raw.txt 里的内容编码存到 hex.txt

certUtil -decodehex hex.txt raw.txt	// 将 hex.txt 里的内容解码存到 raw.txt

二、PowerShell

创建文件

New-Item -Path 'anioner.txt' -ItemType File	// 如果文件夹已存在,则不会覆盖或替换此文件夹且报错

New-Item -Force -Path 'anioner.txt' -ItemType File	// 若文件存在则会覆盖原文件

删除文件

Remove-Item -Path anioner.txt

重命名文件

Rename-Item -Path old.txt -NewName new.txt	// 两个文件必须在同一个路径,不然会报错

移动文件

Move-Item  -Path C:/anioner.txt -Destination D:/anioner.txt

写入文件

Set-Content -Path anioner.txt -Encoding UTF8 -Value "test"	// 带换行符,用-Encoding参数来指定编码

Set-Content -Path anioner.txt -Encoding UTF8 -NoNewline -Value "test"	// 这个不带换行符

追加文件内容

Add-Content -Path anioner.txt -Encoding UTF8 -Value "test"	// 追加内容,带换行符

Add-Content -Path anioner.txt -Encoding UTF8 -NoNewline -Value "test"	// 追加内容,不带换行符

读取文件

Get-Content -Path anioner.txt -Encodin UTF8	// 可以指定读取的编码,防止乱码

cat anioner.txt	// 最简便的读取文件方法,但实际上 cat 命令就是 Get-Content 的别名

搜索文件

Get-ChildItem -File C:/anioner.txt -Recurse | Select-Object FullName	// 在 C:/ 目录精确查找文件 anioner.txt

Get-ChildItem -File C:/anion*.txt -Recurse | Select-Object FullName	// 在 C:/ 目录模糊查找文件 anion*.txt

Get-ChildItem -Path C:/test -Directory -Recurse $pattern | Select-Object FullName	// 在 C:/ 目录精确查找目录 test

Get-ChildItem -Path C:/te* -Directory -Recurse $pattern | Select-Object FullName	// 在 C:/ 目录模糊查找目录 te*

搜索文件内容

Get-ChildItem C:/ -File anion*.txt -Recurse | Select-String "test"	// 在 C:/ 目录中模糊匹配 anion*.txt 并查找内容包含 test 字符串的文件,此命令会输出相对路径

Get-ChildItem C:/ -File anion*.txt -Recurse | ForEach-Object{ if( $a = Select-String -Patter "test" -Path $_){ $a.ToString() } }	// 在 C:/ 目录中模糊匹配 anion*.txt 并查找内容包含 test 字符串的文件,此命令会输出绝对路径

Base64
编码

[System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes("test"))	// 用 Unicode 的字符串编码格式 base64 编码,可以将 Unicode.GetBytes 改成 UTF8.GetBytes 来以 UTF-8 格式解码

[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String("dABlAHMAdAA="))	// base64 解码,字符串编码格式与上同理

Hex
编码

([System.Text.Encoding]::Unicode.GetBytes("test")|ForEach-Object ToString X2) -join ''	// Hex编码,字符串编码格式与上同理

[System.Text.Encoding]::Unicode.GetString([byte[]]("7400650073007400" -replace '..', '0x$&' -split '(?<=.)(?=0x)'))	// Hex解码,字符串编码格式与上同理

解压缩文件

Compress-Archive C:\test\* -DestinationPath c:\test.zip -CompressionLevel Fastest	// 压缩整个 C:\test\ 文件夹

Expand-Archive C:\test.zip -DestinationPath C:\test –Force -Verbose	// 将 test.zip 解压到 C:\test 中,如果 C:\test 已存在,则会覆盖

总结

  1. CMD

    1. 优点:

      1、短小精悍

      2、基本上在所有 Windows
      上都通用

      3、大部分杀软在检测到用 CMD
      写文件时不会拦截

    2. 缺点:

      1、字符编码问题很大,尤其是在使用工具执行命令的时候

      2、换行、转义等操作较为麻烦

      3、无法一句话进行 base64
      Hex
      编码

  2. PowerShell

    1. 优点:

      1、功能很强大,基本上满足任何需求

      2、能够灵活地切换编码,可以保持统一的 UTF-8
      编码

      3、能够一句话解决换行、转义、编码的操作

    2. 缺点:

      1、部分杀软会在程序调用 PowerShell
      时拦截

      2、学习成本较高

  3. 在实际操作时,一定要记得注意编码格式问题,Unicode
    GBK
    UTF-8
    编码的文本会很影响后续操作。


微信扫一扫下方二维码关注哦!

文章转载自Anion的小黑屋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论