[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] bat批处理不执行子文件夹内文件

该代码是将文件夹下TXT文件名称中汉字数字替换成阿拉伯数字,代码如下,但是当前文件夹内可以执行,子文件夹内TXT不替换

1>1/* : www.bathome.net

@echo off

for /f "delims=" %%a in ('dir /a-d /b *.txt^|cscript -nologo -e:jscript "%~0"') do (

ren %%a

)

pause & exit /b

*/

var files = WSH.StdIn.ReadAll().split(/\r?\n/)

for(var i in files){

var newName = files.replace(

/[零一二三四五六七八九十][O零一二三四五六七八九十百千]*/gm,

function(match){

var str = match

str = str.replace(/[一二三四五六七八九]/g,function(match){return '+'+'空一二三四五六七八九'.search(match)})

str = str.replace(/([1-9])([十百千])/g,function(match,_1,_2){return _1 + ({'十':'*10','百':'*100','千':'*1000'}[_2])})

str = str.replace(/^十/,'+10')

str = str.replace(/(\*10+)0[零O](?!\+\d\1)/g,'$10')

return (/[^0-9\+\*]/.test(str)) ? match : eval(0+str)

}

)

WSH.Echo('"'+files+'" "'+newName+'"')

}

回复 2# amwfjhh


修改完执行显示语法不正确

TOP

回复 5# amwfjhh
非常感谢,解决了 :lol :lol

TOP

还有一个问题,受累给看看
当前有n个子文件夹,子文件夹下有很多内容,想把子文件夹下的内容压缩,下面的代码是把整个子文件夹压缩,我想只压缩里面的内容,压缩包以子文件夹命名

@echo off
::设置7ZIP路径
set "zip=C:\Program Files\7-Zip\7z.exe"

cd /d "%SourDir%"
for /d %%i in (*) do "%zip%" a -mx7 "%%i.zip" "%%i"
:: 确认压缩文件解压后可用,删除下面一行的echo以删除源文件夹
echo rd  /s /q %%i
)

TOP

返回列表