dos命令能不能结合正则表达式来批量修改文件名?

作者&投稿:狐东 (若有异议请与网页底部的电邮联系)
求批量正则表达式修改文件名的命令。windows/linux都OK~

for fname in `ls`do newname=`echo $fname | sed 's/999/001/;s/html$/png/'` echo $newname mv $fname $newnamedone

方法/步骤

1
在c盘建立一个文件夹,将下载的图片放置于该文件夹中,如下图所示。

2
鼠标左键点击,开始-》运行-》在对话框中输入字母“cmd”,进入dos模式 ,如下图所示。

在dos模式输入命令行“cd c:\pic”然后回车,再输入命令行“dir /b>rename.xls",如下图所示,可将文件夹中的文件名在rename.xls文件中列出。
小贴士:有的时候,你的计算机正处于中文输入状态,为确保命令行能够打出来,你可以切换成英文大写状态。

随后用xls打开c:\pic文件夹中的rename.xls,你会发现文件名以全部罗列在A列中(你也可以用鼠标来调整文件名的顺序),你可以在B1列中输入1.jpg作为第一个文件文件名。

鼠标选中B1单元格,并在B1列的右下方,使鼠标光标变为+号时,拖动使所有jpg文件的右侧B列中都有文件名。再将A8单元格中没有用的文件名删除,如下图示。

鼠标选中C1单元格,并在编辑框中输入公式="ren "&A1&" "&B1,如下图所示。

继续用鼠标拖动C1单元格右下方的句柄,使剩余的C2-C7单元格填充如下图所示。

然后,鼠标选中C列,鼠标右键复制,如下图示。

在记事本中,粘贴刚才的命令行,如下图示。

鼠标点击菜单“文件”——“另存为”,输入文件名ren.bat,要注意下图所示红圈中的路径及扩展名选项。

打开c盘pic文件夹,鼠标双击ren.bat这个批处理文件,即可将该文件夹下的jpg图片,按照刚才rename.xls中的顺序和文件名批量修改文件名,如下图示。

自此,你已经完成了批量修改文件名的操作。我们运用了dos命令技巧、xls技巧以及批处理3个知识点来达到批量修改文件名的效果。

不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
/*&cls
@echo off
cd /d "%~dp0"
rem 截取文件名称开头的部分字符串,并将该字符串中的罗马数字转换成阿拉伯数字后作为新的文件名来重命名文件
for /f "tokens=1* delims=|" %%a in ('dir /a-d/b *_*.xls^|cscript -nologo -e:jscript "%~f0"') do (
    echo;"%%b" --^> "%%a%%~xb"
    ren "%%b" "%%a%%~xb"
)
pause&exit
*/
var fso=new ActiveXObject('Scripting.FileSystemObject');
var list1=['Ⅰ','Ⅱ','Ⅲ','Ⅳ','Ⅴ','Ⅵ','Ⅶ','Ⅷ','Ⅸ','Ⅹ','ⅰ','ⅱ','ⅲ','ⅳ','ⅴ','ⅵ','ⅶ','ⅷ','ⅸ','ⅹ'];
var list2=['I','II','III','IV','V','VI','VII','VIII','IX','X','i','ii','iii','iv','v','vi','vii','viii','ix','x'];
while(!WSH.StdIn.AtEndOfStream){
    var line=WSH.StdIn.ReadLine();
    var f=fso.GetFile(line);
    var oldname=f.Name;
    for(var i=0;i<list1.length;i++){
        oldname=oldname.replace(list1[i],list2[i]);
    }
    var m=oldname.match(/^([^_]+)_([IVXLC]+)/i);
    if(m){
        var basename=m[1]+addZero(toInt(m[2]));
        WSH.echo(basename+'|'+line);
    }
}
function addZero(s){return s>10?''+s:'0'+s;}
function toInt(s){
    var a={'C':100, 'L':50, 'X':10, 'V':5, 'I':1}
    var b=0;
    for(var i=0;i<s.length;i++){
        if(i>0 && a[s.charAt(i).toUpperCase()]>a[s.charAt(i-1).toUpperCase()]){
            b+=a[s.charAt(i).toUpperCase()]-2*a[s.charAt(i-1).toUpperCase()];
        }else{
            b+=a[s.charAt(i).toUpperCase()];
        }
    }
    return b;
}


@echo off & title 根据特定字符段进行重命名 By 依梦琴瑶

set Ⅰ=01
set Ⅱ=02
set Ⅲ=03
set Ⅳ=04
set Ⅴ=05
set Ⅵ=06
set Ⅶ=07
set Ⅷ=08
set Ⅸ=09
set Ⅹ=10


for %%a in ("*_* *.xls") do (
    for /f "tokens=1,2 delims=_ " %%b in ("%%~a") do (
        call ren "%%~a" "%%~b_%%%%~c%%%%~xa"
    )
)
pause

call :DS
exit

:DS
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit



如何在mac os 终端中用命令行时用 atom 打开文件
显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES;隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO;输完单击Enter键,退出终端,重新启动Finder就可以了;重启Finder:鼠标单击窗口左上角的苹果标志-->强制退出-->Finder-->重新启动;mac os ...

在电脑中如需查看os名称,处理器等信息可选择什么命令?
在电脑中需要查看OS名称,处理器信息可以选择标定参数使用命令。在这样的命令环境下,电脑会自动处理分析,内部存储各个参数显示。

在sqlplus中执行OS的命令
不同的操作系统 SQLPLUS执行OS命令不同 在WIN下 使用 host 在linux下使用 !

苹果mac os怎么用命令行终端打开app应用程序
3. 点开搜索出来的内容,正常的使用Mac命令行终端。第二种:1. 打开finder,然后点开“应用程序”,在搜索栏中输入“终端”,如果是英文版的mac那么输入“Terminal”搜索。2. 打开终端后在终端的Dock上面的图标上点击鼠标右键。3. 把鼠标移动到“选项”--->在Dock中保留,下次需要使用的是候就能直接...

电脑关机时出现“某某某”指令引用“某某某”内存,该内存不能为read.然...
Mode将虚拟内存撤换答案目前为止是肯定的,也就是如在下次冷天到来时亦没再发生,就代表这是主因追加如果你用 Ghost 恢复 OS 后建议 删除WINDOWS\\PREFETCH目录下所有.PF文件因为需让windows重新收集程序的物理地址有些应用程序错误 0x7cd64998 指令参考的 0x14c96730 内存。该内存不能为 read推论是此原因源由Win ...

请问LUA用os.execute执行命令时有没有办法不等待执行完毕直接返回啊我要...
用c语言开两个线程,一个调用LUA的os.execute,另一个做你想做的事。

如何通过命令释放 Mac OS X 内存空间?
Mac OS X的内存管理机制一直都是最棒的,充分利用着你机器的内存,虽然完美,但是有时候某些程序在退出后没有完全释放内存(“非活跃”状态),导致可用内存较少,其实可以让 Mac OS X 强制清理那部分内存。首先打开“终端”(应用程序-实用工具)输入以下命令:purge 稍等片刻,你可在”活动监视器”( Activity...

如何在Mac OS X命令行模式下修复磁盘
在开机时按住 苹果键+S 直到进入命令行模式,之后输入sh后回车就进入了默认的Shell,再输入\/sbin\/fsck-fy回车,这时就开始了检查磁盘权限的过程,有问题出现时会询问修不修复,如果要进行修复就回答Yes,就会对已发现的问题进行修复了。 它不仅仅是对磁盘权限进行检查,而是包括了磁盘修理功能的,整个...

如何把多个mhtml文件合并成一个
将多个MHTML文件合并成一个文件是一个相对简单的任务,但需要使用一些工具来完成。以下是我为你推荐的方法:使用Python脚本:可以使用Python的os和glob库来遍历目录中的所有MHTML文件,并使用zipfile库来创建一个新的MHTML文件。运行此脚本即可合并指定的目录中的所有MHTML文件。使用命令行工具:可以查找并使用将多个MHT文件转...

为什么Macintosh HD不能合并空闲空间啊?
1、当遇到上面的情况时,这是因为 Mac OS 系统内部文件系统在验证时出错,导致不能将空余的分区合并到 Mac OS 分区中。这时请重新启动 Mac 系统,在重启时请按住键盘上的 Command+S 键,进入安全模式。如果没成功的话,请多尝试几次,在重启听到声音前按下。2、随后你会在屏幕上看到一串串字条在...

林州市19662072357: dos的命令是不是 都能在 批处理文件里? 批处理 命令是不是都能 单个在dos里运行??? -
窦枯聚乙: 批处理就是DOS命令的集合,它是按照顺序依次执行下去的.第二个问题你的意思是不是说批处理命令能不能在单个DOS窗口运行?可以的.

林州市19662072357: DOS命令能不能嵌套的?如果可以请举个例子 -
窦枯聚乙: DOS命令都是一条一条独立的去完成工作,可以给他们加参数,但是不能嵌套.一般情况下,需要用到很多条命令去工作的时候,可以写批处理程序,批处理程序的扩展名是bat,举例@echo offdeltree c:\temp\a\*.* /y deltree c:\temp\one\*.* /y deltree c:\temp\two\*.* /y@echo on说明@echo off 是关闭显示,以下操作不在提示中显示出来.@echo on是把之前关闭显示功能打开.deltree c:\temp\*.* /y 是把c:\temp\a 下面的所有文件删掉 /y 参数是不需要用户确认.

林州市19662072357: DOS命令
窦枯聚乙: DOS是个操作系统,你的意思大概是指的是命令提示符吧.你在运行里面输入CMD,弹出来的窗口就是命令提示符的操作窗口了.你可以和批处理结合起来用

林州市19662072357: 请教:关于DOS批处理中IF命令. -
窦枯聚乙: 可以用IF和goto结合使用 if exist 1.txt goto 2txt:2txt if exist 2.txt del 1.txt 创建一个标签,如果条件一成功则判断条件二如果两个条件都正确则执行你想执行的命令

林州市19662072357: 怎样用dos命令修改文档的内容 -
窦枯聚乙: 1、在命令行窗口,我们直接输入copy con命令就行了,命令后面的就是文件的名称. 2、按回车后,我们就可以输入文本内容了,如果你要新建文件,不需要内容,就直接按ctrl+Z. 3、输入完后,直接按键盘上的ctrl+Z按钮就行了,这一点非常重要. 4、最后我们来到C盘,就可以看到刚才的文件了.

林州市19662072357: 用dos命令做成的BAT脚本是怎么执行的? -
窦枯聚乙: 批命令里边每一行为一条DOS命令.你这条命令解释如下:shutdown -s -t shutdown 是Windows的内部指令,意思就是关机,因为Windows是由DOS发展来的,所以批命令还是可以执行的.-s、-t 这些被称作是参数(或选项),-s的意思是关闭...

林州市19662072357: DOS命令的if语句 -
窦枯聚乙: 以下代码是使用 if /? >> C:\help.txt 生成的. ----------- 执行批处理程序中的条件处理.IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 指定只有条件为 false 的情况下, ...

林州市19662072357: DOS 可不可以用IF和gotu语句直接执行输入什么字符就跳转到什么字符那里执行下面的命令
窦枯聚乙: 例子: 检测输入命令是否成功 set /p var=随便输入个命令:%var% if %ERRORLEVEL% == 0 goto yes 0表示返回成功的值,跳转到YES goto no 否则是NO:yesecho !var! 执行成功了pauseexit :noecho 执行失败了..pause

林州市19662072357: 什么是批处理命令 -
窦枯聚乙: 批处理命令就是 把一堆dos命令按次序写在一个文本文件里.然后把后缀改为.bat 运行这个批处理命令,他会按次序运行写好的dos命令

林州市19662072357: 什么是批命令? -
窦枯聚乙: 关于批处理的解释.没有一个标准的解释,用简单的话说,批处理就是把很多个DOS命令,按照一定顺序,一个一个去执行

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网