我的目标是在 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
按照此: