Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Command line 要批量重命名以仅保留原始文件名的某些字符的脚本?_Command Line_Batch File_File Rename - Fatal编程技术网

Command line 要批量重命名以仅保留原始文件名的某些字符的脚本?

Command line 要批量重命名以仅保留原始文件名的某些字符的脚本?,command-line,batch-file,file-rename,Command Line,Batch File,File Rename,我需要用不同大小的原始文件名重命名数千个rar文件。我必须通过保留原始文件名的前3个字符和最后4个字符,并在中间3个随机字符[数字]中添加它们,使它们长10个字符。 例子: 输入: “无名氏-无名氏-19073275.rar” “XXXX-XYXY-98705674.rar 输出: “Joh1273275.rar” “XXX9795674.rar” 接下来,.bat应该为每个文件生成一个带有原始名称和下面修改名称的.txt 我知道这是可能的,但我在写的时候完全是个傻瓜。请帮帮我!我会写一个脚本,

我需要用不同大小的原始文件名重命名数千个rar文件。我必须通过保留原始文件名的前3个字符和最后4个字符,并在中间3个随机字符[数字]中添加它们,使它们长10个字符。

例子: 输入: “无名氏-无名氏-19073275.rar”

“XXXX-XYXY-98705674.rar

输出: “Joh1273275.rar”

“XXX9795674.rar”

接下来,.bat应该为每个文件生成一个带有原始名称和下面修改名称的.txt


我知道这是可能的,但我在写的时候完全是个傻瓜。请帮帮我!

我会写一个脚本,以任何简单的方式生成名字(比如说前6个+后4个),然后检查是否有重复的名字需要手动清理(或者第二次移动中间位置,或者…)。除非这是一项重复性工作(每天做),它不值得完全自动化。

下面的批处理文件可以执行您想要的操作:

@echo off
setlocal EnableDelayedExpansion
for %%a in (*.rar) do (
   set name=%%~Na
   set num=00!random!
   set newName=!name:~0,3!!num:~-3!!name:~-4!
   ren "%%a" "!newName!%%~Xa"
   echo "%%a" modified to "!newName!%%~Xa" >> log.txt
)

在这里尝试批量重命名:手动重命名不是一个选项-数千个文件。这可能只是一个重复的工作。但我将尝试根据您的建议草拟一个脚本,即前6个-后4个,看看这会导致什么…阿奇尼,谢谢!这正是我需要的!尽管我努力了,但我无法正确使用随机的东西。这很有效完美的