【发布时间】:2014-11-27 17:20:56
【问题描述】:
在 bat/cmd 方面,我完全是新手。 在谷歌的帮助下,我可以做非常非常基础的事情! & 当我的意思是基本的我说 xcopy、robocopy 等时。
我正在尝试编写一个代码,该代码将从当前文件夹中提取前 5 个字符并重命名子文件夹中的文件,但也以当前日期为后缀。
所以这基本上就是我想要做的。
W:\12345_folder 这是我要从中提取 12345 的主文件夹。
W:\12345_folder\subfolder这是要重命名的文件的位置
子文件夹内文件的当前名称如下
file1.txt
file2.txt
file3.txt
重命名后应该如下
12345 file1 2014-10-02.txt
12345 file2 2014-10-02.txt
12345 file3 2014-10-02.txt
我所有的努力都白费了。我可以使用它来获取日期。但它会重命名整个文件名并且不保留现有文件名。
for /f "tokens=1-5 delims=/ " %%d in ("%date%") do rename "*.txt" %%g%%f-%%e-%%d.txt
我也一直在玩这个:
for %%z in ("%cd%") do (
for %%a in ("%%~dpz%\.") do (
rename "**.txt" "%%~nxa-.txt"))
但这又会覆盖整个文件名,并且不会保留现有文件名。
我必须再次强调,我是一个完全的新手,所以要温柔,非常感谢您的帮助。
【问题讨论】:
-
我已经设法使用以下代码为我的文件名加上日期后缀。
@ECHO OFF for /f "tokens=1-5 delims=/ " %%d in ("%date%") DO (SET TODAY=%%f-%%e-%%d) for %%a in (*.txt) do ren "%%~a" "%%~na %TODAY%%%~xa"现在我只需要一些关于前缀文件夹名称的帮助 -
正确的文件夹名称重命名工作
for %%z in ("%cd%") do ( for %%a in ("%%~dpz%\.") do ( for %%i in (*.pdf,*.xlsx,*.docx,*.xlsm) do move "%%i" "%%~nxz_ %%i"))如果此代码仅从文件夹名称中获取前 5 个字符,这将非常有用。这是我现在唯一要做的事情,所以任何帮助都会很棒。我敢肯定,对于没有运气的人来说,这很简单。我什至不太确定我是如何设法让上述代码工作的!
标签: batch-file cmd renaming