Как создать пакетный скрипт, который выбирает самый старый файл в папке, переименовывает его, перемещает в другой файл и снова переименовывает? - PullRequest
0 голосов
/ 06 февраля 2020

Я очень новичок в программировании / кодировании. Я сделаю все возможное, чтобы объяснить мою проблему (извините за мой engli sh).

Я работаю на 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:\Another\Location
    goto continue
)

:continue

Я думаю, что я должен включить следующее: ren [drive:] [path] TargetMask, но я совсем не уверен ... Я надеюсь, что вы можете понять это. Я уже пытался найти свою проблему, но только запутался ... Любая помощь очень ценится. Спасибо

1 Ответ

0 голосов
/ 08 февраля 2020

Windows 10 64-bit

Как переместить и переименовать самый старый (по времени последней записи) файл в папке, используя cmd, pushd, для in do, set, move и popd.

Когда вы довольны, скрипт выполнит то, что говорит, внесет следующие изменения:

Измените %userprofile%\desktop на C:\Another\Location

Измените pushd "%userprofile%\desktop" на pushd c:\test

Изменить echo move на move

Роб Вандервуд NT для

скрипт:

@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 :

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
...