我需要Windows批处理文件在文件夹名称为&的子文件夹中为文件名前缀子文件夹名称
e.g。我有为日期12012017创建的文件夹,其结构如下
d:\12012017\1234\ABC\file1.txt
d:\12012017\1234\ABC\file2.txt
d:\12012017\5678\PQR\file3.txt
d:\12012017\2345\XYZ\file4.txt
需要他们重命名为
d:\12012017\1234\ABC\1234_ABC_file1.txt
d:\12012017\1234\ABC\1234_ABC_file2.txt
d:\12012017\5678\PQR\5678_PQR_file3.txt
d:\12012017\2345\XYZ\2345_XYZ_file4.txt
尝试使用以下代码,但无效
set mydate=%date:~0,2%%date:~3,2%%date:~6,4%
REM ECHO %mydate%
D:
CD D:\%mydate%
@ECHO STARTING RENAME
pushd D:\%mydate%
for /d %%D in (*) do (
@ECHO 1- pushd "%%D"
@ECHO CD %%D
for /d %%X in (*) do (
@ECHO pushd "%%X"
for /r %%F in (*) do (
@ECHO 2- pushd "%%F"
for %%P in ("%%F\..") do (
@ECHO 3- pushd "%%P"
@ECHO 4 - ren "%%F" "%%~nxD_%%~nxF"
)
)
)
popd
)
popd
CD\
答案 0 :(得分:2)
有更好的方法以正确的格式获取当前日期,但我会保留与区域设置相关的现有方法。
在内循环上使用FOR / F和DIR非常重要,而不是简单的FOR,因为简单的FOR可以迭代已经命名的文件,但FOR / F不会。
Eamillogin