windows下的实现方式。将下面的程序复制,粘贴到一个新建的文本文档中,保存为.bat格式的文件,文件放到要处理的图片根目录
dir /a-d /b /s /od "*.png" > path.txt
详情可以参考dir命令的参数
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要列出的驱动器、目录和/或文件。
/A 显示具有指定属性的文件。
属性 D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 I 无内容索引文件
L 解析点 - 表示“否”的前缀
/B 使用空格式(没有标题信息或摘要)。
/C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
禁用分隔符显示。
/D 跟宽式相同,但文件是按栏分类列出的。
/L 用小写。
/N 新的长列表格式,其中文件名在最右边。
/O 用分类顺序列出文件。
排列顺序 N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 反转顺序的前缀
/P 在每个信息屏幕后暂停。
/Q 显示文件所有者。
/R 显示文件的备用数据流。
/S 显示指定目录和所有子目录中的文件。
/T 控制显示或用来分类的时间字符域。
时间段 C 创建时间
A 上次访问时间
W 上次写入的时间
/W 用宽列表格式。
/X 显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,
短名称插在长名称前面。如果没有短名称,在其位置则
显示空白。
/4 用四位数字显示年
可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。
文件重命名+按文件名的数字大小排序。addNumber为文件名字要增加的数据,比如,想将000001.png改为000101.png,以此类推,名字数值增加100,则让addNumber=100即可。
validNumber为保留的文件名的有效位数,如果validNumber=6,则重命名的文件名为000001.png,如果为3,则为001.png
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b *.png') do (
set "fn=000000000000%%~na"
set "#!fn:~-10!=%%a"
)
set addNumber=0
set validNumber=6
set /a validNumber=%validNumber%+4
for /f "tokens=1* delims==" %%c in ('set #') do (
set namee=%%c
set namee=!namee:~-6!
set /a namee=1!namee!+%addNumber%-1000000
set newName=000000000!namee!.png
set newName=!newName:~-%validNumber%!
if exist %%d ren %%d !newName!
)
在linux下的实现方式如下:可以直接运行命令,也可以写入.sh文件
#不带路径:grep 表示筛选规则
ls -R /path/ | grep '*.*'
#带路径: -maxdepth 1 代表只递归一层目录,如果要所有目录则去掉这个参数就可以了 find /path/ -maxdepth 1 -name "*" | grep '*.*'
#查找目录下所有相关文件,然后修改文件中的关键变量。下例为查找到/path/目录下所有.sh文件,并查找所有.sh文件中的done字符串,将这些字符串替换成mmmm字符串
#sed 的查找替换规则可以查阅正则表达式。
find /path/ -name "*.sh" | xargs sed -i 's/done/mmmm/g'
快速获得当前文件夹中的jpg图片,并做成xml文件
@echo off
set folder=%cd%
set dst=image.xml
echo ^<?xml version="1.0"?^> > %dst%
echo ^<opencv_storage^> >> %dst%
echo ^<imagelist^> >> %dst%
for /f "tokens=*" %%j in (' dir /a-d /b /s "%folder%\*.jpg" ') do (
echo "%%j" >> %dst% )
echo ^</imagelist^> >> %dst%
echo ^</opencv_storage^> >> %dst%
空格,特别是=号后面,否则会错误!!!!