重命名文件夹中的文件

重命名文件夹中的文件

我的目标是在 Windows Server 2016 中创建一些东西,以便连续重命名文件夹中的所有文件。但是,我不知道如何做到这一点。我对此进行了一些研究,但我只找到了单击时重命名文件的工具。我想要做的是创建一个连续的计划,每次在文件夹中创建文件时,它都会用前缀、日期和小时等重命名它。

你们有人知道有什么办法吗?

谢谢。

编辑:我具体想做的是创建一个连续循环,用任意名称重命名文件夹中的所有文件,并在其中添加带有日期和小时的前缀

答案1

一个非常简单的.bat文件就可以完成这项工作:

@ECHO OFF
:loop
  ren old*.oldname new*.newname
  timeout /t 5 > NUL
goto loop

对于更复杂的重命名,请参阅文章
Windows RENAME 命令如何解释通配符?

答案2

我建议做这项工作,在名称中添加一些字符,如使用“#”的代码(例如),按列表过滤文件,如果不匹配,则重命名它......

对不起我的英语水平有限...

@echo off & setlocal enabledelayedexpansion

mode 50,4 & color 9F & title <nul & cls

rem :: go to the target folder, by edit 'set command in [set "_path_to_ren=."]' and repace to:
rem :: 'set "_path_to_ren=."' by set/add your full target path: "d:\folder\where\are\this\files"

set "_path_to_ren=." & cd /d "!_path_to_ren!"

:^| 
title <nul & echo/ & echo/ Working in looping... & echo ========================== 
    
for /f %%i in ('%__APPDIR__%wbem\wmic.exe OS Get localdatetime^|find "."')do set "_dt=%%~i"
title Renaming in Looping: !_dt:~0,4!/!_dt:~4,2!/!_dt:~6,2! !_dt:~8,2!:!_dt:~10,2!:!_dt:~15,2! 

for /f "tokens=*delims= " %%i in ('%__APPDIR__%where.exe .:"*"^|%__APPDIR__%findstr.exe /v \\#[0-9]^|find/v "%~0"
')do 2>nul ren "%%~i" "#!_dt:~0,4!-!_dt:~4,2!-!_dt:~6,2!-!_dt:~8,2!-!_dt:~10,2!-!_dt:~12,2!_%%~nxi" >nul

%__APPDIR__%timeout.exe /t 1 >nul & goto :^|

| LoopRen.cmd | FileName.Ext

| Get Results | #2020-06-28-13-00-57_FileName.Ext


在此处输入图片描述


观察:获取日期wmic按照此:


批量获取当前日期月份年份的安全方法

批处理文件中的解析日期和区域设置/区域设置

相关内容