пакетный файл для копирования файлов из одного места в другое - PullRequest
1 голос
/ 09 ноября 2010

Как мне запрограммировать файл bat, который мог бы поместить file.dll, который находится в той же папке, в которой находится файл .bat, в папку windowsMainDir/system32, но только если файл еще не существует?

1 Ответ

4 голосов
/ 09 ноября 2010

Создайте свой командный файл, например, «copy_file.cmd», и поместите в него следующее:

@echo off
SET SRC="%~dp0file.dll"
SET DEST="%WINDIR%\system32\file.dll"
if not exist %DEST% copy /V %SRC% %DEST%

Если файл назначения не существует, он скопирует исходный файл в место назначения. Переключатель /V позволяет копировать, чтобы убедиться, что файл был скопирован правильно, и является необязательным.

%~dp0 в SRC берет диск d и путь p из переменной %0 (путь к пакетному файлу) и использует этот путь в качестве префикса для file.dll. Вы хотите сделать это, чтобы гарантировать, что скрипт всегда берет файл из того же каталога, что и пакетный файл, а не из текущего каталога. Например, если ваш пакетный файл был на сетевом диске, сопоставленном с H:, вы все равно можете запустить его с C:.

c:\> h:\shared_scripts\copy_file.cmd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...