2013-10-03 4 views
1

Я новичок в написании сценариев, и у меня есть этот скрипт через Интернет, может кто-нибудь объяснить, как работает следующий код, строчно?командный файл для копирования самого последнего созданного файла

@echo off 

set "source=C:\temp" 
set "dest=c:\paste" 

pushd "%source%" ||(
    echo.Source does not exist&pause&goto EOF) 

for /f "tokens=*" %%f in (
    'dir /A-D /OD /B') Do set "file=%%f" 

popd 

xcopy /d /i "%source%\%file%" "%dest%\" 

Большое спасибо за вашу поддержку.

ответ

1

Ok, его не сложно:

@echo off: не позволяет пользователю видеть, какие команды Бейн занесены из пакетных файлов (выход только можно увидеть)

set "var=value": Создает Название переменной называется var со значением value

pushd "%source%" ||(echo.Source does not exist&pause&goto EOF):

Изменяет текущий каталог, что ценности Названия переменной source и если есть выход (то есть, если есть ошибка) она сделает паузу и выйти с данной erroro сообщения

for /f "tokens=*" %%f in ('dir /A-D /OD /B') Do set "file=%%f":

Пройдет через каждую папку в текущем каталоге и задает значение varaible file. Он будет делать это в алфавитном порядке, поэтому каталог последним в этом порядке будет значение file

popd: Устанавливает текущую директорию на то, что это было до последнего pushd команды

xcopy /d /i "%source%\%file%" "%dest%\": копии все, что значение переменной file в direcotory, которое было установлено на значение source, и копирует его на пути переменной dest

Вот и все. Если вы хотите лучше понять, как использовать эти команды, найдите учебник.

+0

большое спасибо за это. Это отличная помощь! –

+0

@AlvinMovida Пожалуйста, верните мой ответ, если вы сочтете это полезным – Monacraft

+2

@Monacraft есть некоторые ошибки в вашем тексте. Он не будет проходить через каждую папку в каталоге, которая будет проходить через все, что есть ** НЕ ** папка. Также он будет делать это в порядке дат (а не в алфавитном порядке) – joojaa

Смежные вопросы