2012-06-25 2 views
0

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

Моя цель - перенести файлы с моего диска H на мой диск A, H:\Arco\examplefile.csv - \A:\DSE\Open_Access_Data\ARCo.

Я также хочу автоматизировать эту работу, если это возможно, каждые 30 минут. Но если мне нужно сделать это, щелкнув по нему, пусть будет так. Пока что все, что мне удалось сделать, это скопировать файлы на мой рабочий стол. Кажется, я не понимаю, как это сделать между моими каталогами.

COPY H:\dehpc14_Disk_Quota_Report.csv %userprofile%\Desktop 
+2

Если вы не используете cygwin, это не вопрос bash. –

+0

Да, где 'bash' в этом вопросе? Я искал приглашение $ prompt, его там нет. –

+1

извините, ребята, я хотел поставить пакет не bash, теперь редактировался в сообщении – Zenaphor

ответ

1

Это должно работать:

:LOOP 
copy H:\Arco\examplefile.csv A:\DSE\Open_Access_Data\ARCo /y 
timeout /t 1800 
goto :LOOP 

Это будет копировать файлы через каждые 30 секунд и перезаписывать существующие файлы.

Примечание: команда timeout доступна только в Vista и выше, если вам нужно использовать это на XP, дайте мне знать.

Для запуска командного файла при запуске системы вы можете либо поместить его в папку автозагрузки пользователя, либо использовать реестр.

Папка запуска для текущего пользователя

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 

Для всех пользователей

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 

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

Текущий пользователь

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 

Компьютерные пользователи

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

Оба варианта реестра будут требовать права администратора, хотя.

Для этого либо запуска или реестра в пакетном режиме, соответственно

copy %0 "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" /y 

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "MyBatchFile" /d "%0" /f 

Какой будет либо копировать себя в автозагрузку или добавить себя в реестр каждый раз, когда он работает. Таким образом, вы можете сделать это вручную или сделать это самостоятельно (над командами) с первого запуска.

%0 - это собственный путь к пакетным файлам, если вы хотите использовать команды из другого места или просто из cmd, а затем введите полный путь к пакетному файлу.

+0

Большое спасибо за пример выше, отлично работает, есть способ, которым я могу заставить его запускаться всякий раз, когда системы запускаются или это будет случай, когда нужно начинать от командного файла каждый раз? Thanks Z – Zenaphor

+0

@Zenaphor Нет проблем. Я отредактировал свой ответ с информацией о том, как запустить его при каждом входе в систему. –

+1

Я предпочитаю '% HOMEPATH%' и '% ALLUSERSPROFILE%', так как ваши фиксированные пути 'C: \ Users \% username%' и 'C: \ ProgramData \ ...' работают только на стандартной установке английского языка windows version – jeb

0

Используйте команду как cron в Unix для установки интервала задержки для запуска программ, как ваша автоматизированной копия. См. Вопрос переполнения стека What is the Windows version of cron? для cron-подобной версии для Windows.

Для копирования с одного диска на другой использование

copy filepath1 filepath2 

где filepath1 твой H:\path-to-file и filepath2 ваш A:\path-to-file.

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