进入d盘,直接输入:d: 回车
cd 目录名:进入特定的目录。
cd :退回到根目录。
cd..:退回到上一级目录
1、删除关键词所在行
cmd下
进入该文件所在目录
findstr /v /r "关键词" 源文件名.txt>新文件名.txt
eg:findstr /v /r "哈哈" 1.txt>2.txt
源文件:1.txt
1ajsdfihiaushewhafj哈哈
2ajshdfhash哈哈fasfd
3asdfjiqerhhask
4jasdfnhhasdfj
哈哈5ausdhfuiahsdf
新文件:2.txt
3asdfjiqerhhask
4jasdfnhhasdfj
当txt文件很多时,可以批量修改:
for /f "tokens=*" %i in ('dir/b *.txt') do (findstr /v "哈哈" "%i">temp.txt&move /y temp.txt "%i")
(网上都是两个%,%%i,但是我自己在cmd下使用时,两个出错,一个才行。。。)
eol=c – 指定一个行注释字符,遇到c开头的行就忽略掉。
skip=n – 指定在文件开始时忽略的行数。
delims=xxx – 指定分隔符。默认是空格和TAB。
tokens=x,y,m-n – 指每行的哪一个符号被传递到每个迭代的 for 本身。
一句话总结:提取列。
通俗讲,共同提取每一行的第m小节的内容。
因此,可以用该命令来指定提取文本信息。
tokens=有时表示提取全部。
tokens=m表示提取第m列。
tokens=m,n表示提取第m列和第n列。
tokens=m-n表示提取第m列至第n列。
tokens=*表示删除每行前面的空格。忽略行首的所有空格。
tokens=m*提取第m列以后的所有字符,星号表示剩余的字符。
tokens=m,*提取第m列以后的所有字符,星号表示剩余的字符。
输出变量的个数由定义了的tokens决定。
在 FOR 语句中显式声明 %%i。使用tokens= 隐式声明%%j 和%%k。只要不会引起试图声明高于字母“z”或“Z”的某个变量,则使用tokens= 可以指定最多 26 个输出变量。
2、删除空行
cmd下,进入文件所在目录
删除目录下所有txt文件中的空行(子文件夹下页包括):(慎用!!!别问我为什么。。。)
for /R %i in (*.txt) do @findstr . "%i">new.txt&move /y new.txt "%i"
删除某个txt文件中的空行
for /f "delims=" %i in (1.txt) do >>2.txt echo %i
3、删除某个目录下的所有txt文件
假设要删除的文件位于D盘的“测试”目录下的以的txt为扩展名的文件:
运行:cmd
在命令行提示窗口
输入D: 回车
就转到了D盘
再输入cd 测试 回车
就进入了“测试”目录
输入del /f /s /q *.txt 回车
删除某个固定名称的txt:例如1.txt
del /f /s /q 1.txt
这样目录下所有1.txt都被删除(包括子文件夹下的)
4、批量重命名
方法(1)利用bat文件
新建一个txt 文件:
@echo off setlocal enabledelayedexpansion set var=0 echo %var% set /a i = i + var for %%x in (*) do ( if not "%%x"=="rename.bat" ( set /a i+=1 rename "%%x" "!i!.jpg" ) ) pause
重命名为:rename.bat
把这个文件和你需要重命名的所有文件放在同一个目录下,双击打开运行即可
运行结果:得到1.jpg,2.jpg,3.jpg...........
注意:这里是里面所有文件都被重命名
方法(2)dos命令
首先,全选所有文件之后修改某一个文件的名字(如改成temp),确定后其余的文件名就自动改成了temp (1),temp (2),temp (3)(后缀省略)......注意:temp和(1)之间有个空格
for /L %t in (1,1,3) do ren "temp (%t).jpg" "20170825_%t.jpg"
结果:图片名字修改为:20170825_1.jpg,20170825_2.jpg,20170825_3.jpg,
%t是循环变量,(1,1,3)的意思是(起始,步长,终止),终止基本就是所需要重命名文件的个数
注意:temp和(%t).jpg之间有个空格