-1

У меня есть следующее в командном файле:

ECHO ---------------- Copy to Test --------- >> "c:\Logs\Posted_%date:~-10,2%-%date:~-7,2%-%date:~-4,4%_%time:~0,2%%time:~3,2%.txt
copy "C:\myfiles\OT*" "c:\OT Test\" >> "C:\Logs\Posted_%date:~-10,2%-%date:~-7,2%-%date:~-4,4%_%time:~0,2%%time:~3,2%.txt

Это приводит к текстовому файлу, который отображает:

C:\Myfiles\OT for Dec17.xlsx
        1 file(s) copied.

Я хотел бы показать не только какой файл был скопирован, но и имя цели. Что-то вроде этого:

C:\Myfiles\OT for Dec17.xlsx to c:\OT Test\

Что мне нужно добавить в мой командный файл, чтобы сделать это?

1 ответ1

1

Команда copy не имеет возможности показывать как цель, так и место назначения в своих выходных данных.

Если вы действительно хотите это в своем лог-файле, есть несколько дорог, по которым вы можете идти. Сначала я начну с самого простого, вплоть до самого сложного. (замените >> outputfile.txt на ваш файл журнала)

Выведите путь до команды копирования

Самое простое - просто отобразить пункт назначения в вашем журнале.

Например:

echo Copying files to C:\OT Test >> outputfile.txt
copy "C:\myfiles\OT*" "c:\OT Test\" >> outputfile.txt

Используйте другую команду

Хотя копирование является самым простым в использовании, оно также является самой простой из доступных команд копирования. Это также одна из команд, которая уходит в прошлое. Если ваш сценарий будет работать только на последних системах (Windows 8,10, 2012 или 2016), то у вас также будет робокопия на вашем компьютере, которая поддерживает отображение выходного пути в своем журнале. Хотя robocopy - это продвинутый copytool, но все равно вам может понадобиться файл журнала, который он создает.

Эмулировать копию

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

Затем он будет выводиться на экран при запуске сценария, но ваш файл журнала будет именно таким, каким вы хотите. Учитывая сложную природу for и мое ограниченное время, я не могу написать вам подробный ответ для команды for. Но первый метод, вероятно, будет достаточно хорош в любом случае.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .