怎么样用vbs或者bat自动修改文件名?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么样用vbs或者bat自动修改文件名?相关的知识,希望对你有一定的参考价值。

例如:先读取文件d:\test\0C96CD9EF91B_PASS.txt,截取文件名前12个字符:0C96CD9EF91B,然后再进行16进制运算:0C96CD9EF91B-1=0C96CD9EF91A,最后生成新的文件名:0C96CD9EF91A_PASS.txt,保存到d:\new,同时删除旧的文件。如果有多个文件,则修改多个文件。谢谢!

参考技术A

不清楚你的实际文件/情况,仅以问题中的样例/说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI

<# :
cls&echo off&cd /d "%~dp0"
rem 从原文件名称开头截取16进制字符并进行计算,结果作为新的文件名称
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
$oldfile="d:\\test\\0C96CD9EF91B_PASS.txt";
$oldname=[System.IO.Path]::GetFileName($oldfile);
$newname=[regex]::replace($oldname, '(?i)^[a-f0-9]+', 
    param($m);$v=$m.groups[0].value;$len='X'+$v.length.ToString();
    $n=[Convert]::ToInt64($v, 16)-1;
    $n.ToString($len);
);
$newfile=[System.IO.Path]::GetDirectoryName($oldfile)+'\\'+$newname;
$oldfile+$c+$newname;

易语言隐藏bat窗口

执行 (#打开文件, “d:\guanlianbat.bat”, , , )
怎么隐藏?

没法隐藏(bat文件是通过cmd执行的,你用易语言运行guanlianbat.bat时,其实就只是起到了一个鼠标双击的作用,运行bat还是靠cmd)
只有通过这样解决,自己在写个vbs文件(起到隐藏cmd的作用)来运行你那个bat ,再用易语言来运行那个vbs文件,就可以隐藏cmd执行bat命令的黑色窗口。
java语言可以直接隐藏,如果自己写来自己用的话,就可以用java来做。
参考技术A 打开文件后面有一个参数 #隐藏窗口,建议在输入命令时候把前面的+号打开,那样不容易漏了参数,而且能在提示里看到参数的介绍
执行 (#打开文件, “d:\guanlianbat.bat”, , , #隐藏窗口) ‘应该行了本回答被提问者采纳
参考技术B 执行 (#打开文件, “d:\guanlianbat.bat”, , , #隐藏窗口) 参考技术C 执行 (#打开文件, “d:\guanlianbat.bat”, , , #隐藏窗口) 参考技术D 你把BAT转成EXE运行不就行罗。。

以上是关于怎么样用vbs或者bat自动修改文件名?的主要内容,如果未能解决你的问题,请参考以下文章

删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件:BAT + REG + VBS

如何让这个Bat批处理文件在后台运行?不用vbs

怎么用bat脚本写个批量修改图片名称?

VBS+bat后强大的功能

用批处理(vbs也行)控制winrar,将拖到批处理文件上的压缩包,进行修改,把压缩包里ABC文件夹中的文件修

怎么用bat文件批量修改文件名称