我对编程/编码很陌生。 我会尽力解释我的问题(我的英语(。
我在Windows Server 2012上工作,我想创建一个批处理脚本,该脚本选择文件夹中最旧的文件,重命名它,将其移动到另一个文件夹并再次重命名。
另一种解释方式:
- 我有一个包含 15 个文件的文件夹
- 最早的文件称为"橙色"
- 我希望脚本重命名"橙色"文件
- 现在将文件移动到另一个文件夹,最后再次重命名
我从这里的其他地方得到了这个,但我不知道它是否有效,或者它到底意味着什么,我刚刚保存了它,所以我至少有一些东西可以向你们展示。
@echo off
cd c:Test
for /F "delims=" %%a in ('dir /B /A:-D /O:D /T:W') do (
move "%%a" C:AnotherLocation
goto continue
)
:continue
我想我必须包括以下内容:ren [drive:][path]TargetMask,但我根本不确定... 我希望你能理解这一点。我已经尝试查找我的问题,但只是变得更加困惑......任何帮助将不胜感激。谢谢
Windows 10 64 位
如何使用 cmd、pushd、for indo、set、move 和 popd 移动和重命名文件夹中最旧的(按上次写入时间(的文件。
当您满意时,脚本将按照它所说的进行操作,并进行以下更改。
将%userprofile%desktop
更改为C:AnotherLocation
将pushd "%userprofile%desktop"
更改为pushd c:test
将echo move
更改为move
Rob Vanderwoude NT FOR
脚本:
@rem How to move and rename the oldest (by last written time) file in a folder using cmd, pushd, for in do, set, move, and popd.
@rem Windows 10 64-bit
@echo off
setlocal enableextensions
pushd "%userprofile%desktop"
FOR /f "delims=" %%g IN ('DIR /b /a-d /o-d /tw') DO (
SET zold=%%g
SET zoldname=%%~ng
)
echo move /y %zold% %userprofile%desktop%zoldname%.bat
popd
exit /b
厘米:
cmd /eq
pushd "%userprofile%desktop"
FOR /f "delims=" %g IN ('DIR /b /a-d /o-d /tw') DO (
SET zold=%g
SET zoldname=%~ng
)
echo move /y %zold% %userprofile%desktop%zoldname%.bat
popd
exit /b