Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование файла в зависимости от имени компьютера с заменой имеющегося. (http://forum.oszone.net/showthread.php?t=254535)

vsesam 20-02-2013 23:33 2095487

Копирование файла в зависимости от имени компьютера с заменой имеющегося.
 
Копирование файла в зависимости от имени компьютера(либо ip) с заменой имеющегося.
Поясню: Есть N компьютеров, на каждом установлена программа "X", перед её запуском нужно заменить файл в её директории на другой файл из другой директории в которой для каждого компьютера сгенерирован свой файл. Бат файл должен определять имя или ip (так как они неизменны) и исходя из этого решать какой из файлов какому компьютеру копировать с заменой имеющегося и уже после этого запускать программу.

Условия:
Имена компьютеров от P1 до P30
Папка программы и имя выполняемого файла C:\Program Files\программа\файл_запуска.exe
Папка в которой нужно заменить файл C:\Program Files\программа\папка_в_которой_нужно_заменить_файл
Папка с сгенерированными файлами для замены d:\папка_с_файлами_для_замены\p1....p30\файл_для_замены

Пример:
Я запускаю батник на компьютере P5, он лезет в папку "d:\папка_с_файлами_для_замены\p5\файл_для_замены" и копирует его с заменой в папку "C:\Program Files\программа\папка_в_которой_нужно_заменить_файл", после чего запускает программу "C:\Program Files\программа\файл_запуска.exe"
Спасибо.

Iska 21-02-2013 01:12 2095568

Потрясающее утверждение. И что?! Вопрос где?

vsesam 21-02-2013 01:17 2095572

Цитата:

Цитата Iska
рясающее утверждение. И что?! Вопрос где? »

нужно создать bat файл. категорию для этого выбирают!?
Поясню: Есть N компьютеров, на каждом установлена программа "X", перед её запуском нужно заменить файл в её директории на другой файл из другой директории в которой для каждого компьютера сгенерирован свой файл. Бат файл должен определять имя или ip (так как они неизменны) и исходя из этого решать какой из файлов какому компьютеру копировать с заменой имеющегося и уже после этого запускать программу.

Iska 21-02-2013 02:52 2095602

Всё равно мало информации.
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

if exist "\\Server\Share$\FileName_%ComputerName%.txt" copy "\\Server\Share$\FileName_%ComputerName%.txt" "%~dp0"
"%~dp0Program.exe"

endlocal
exit /b 0


vsesam 21-02-2013 11:53 2095764

Цитата:

Цитата Iska
@echo off
setlocal enableextensions enabledelayedexpansion
if exist "\\Server\Share$\FileName_%ComputerName%.txt" copy "\\Server\Share$\FileName_%ComputerName%.txt" "%~dp0"
"%~dp0Program.exe"
endlocal
exit /b 0 »

Непонятно, можно более раскрыто?

Имена компьютеров от P1 до P30
Папка программы и имя выполняемого файла C:\Program Files\программа\файл_запуска.exe
Папка в которой нужно заменить файл C:\Program Files\программа\папка_в_которой_нужно_заменить_файл
Папка с сгенерированными файлами для замены d:\папка_с_файлами_для_замены\p1....p30\файл_для_замены

Пример:
Я запускаю батник на компьютере P5, он лезет в папку "d:\папка_с_файлами_для_замены\p5\файл_для_замены" и копирует его с заменой в папку "C:\Program Files\программа\папка_в_которой_нужно_заменить_файл", после чего запускает программу "C:\Program Files\программа\файл_запуска.exe"

Iska 21-02-2013 12:16 2095786

Если существует файл «FileName_КомпьютерИмярек.txt» по пути «\\Server\Share$», скопировать его в папку, содержащую данный пакетный файл. Затем из этой же папки запустить исполняемый файл «Program.exe».

vsesam 21-02-2013 12:27 2095796

Цитата:

Цитата Iska
Если существует файл «FileName_КомпьютерИмярек.txt» по пути «\\Server\Share$», скопировать его в папку, содержащую данный пакетный файл. Затем из этой же папки запустить исполняемый файл «Program.exe». »

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

Iska 21-02-2013 12:52 2095823

Цитата:

Цитата vsesam
можно на моем примере? »

На каком «Вашем примере»?! Вы разве привели какую-то конкретику: откуда и куда копировать — имя исходной папки, имя конечной папки, примеры имени файла; имя и путь к приложению?!

Ясно. Вы отредактировали свой пред-предыдущий пост позже, когда он уже «ушел» далеко вверх.

vsesam 21-02-2013 12:56 2095825

Цитата:

Цитата Iska
На каком «Вашем примере»?! Вы разве привели какую-то конкретику: откуда и куда копировать — имя исходной папки, имя конечной папки, примеры имени файла; имя и путь к приложению?! »

Да привел.
Имя копируемого(заменяемого) файла всегда одинаковое.

Имена компьютеров от P1 до P30
Папка программы и имя выполняемого файла C:\Program Files\программа\файл_запуска.exe
Папка в которой нужно заменить файл C:\Program Files\программа\папка_в_которой_нужно_заменить_файл
Папка с сгенерированными файлами для замены d:\папка_с_файлами_для_замены\p1....p30\файл_для_замены

Пример:
Я запускаю батник на компьютере P5, он лезет в папку "d:\папка_с_файлами_для_замены\p5\файл_для_замены" и копирует его с заменой в папку "C:\Program Files\программа\папка_в_которой_нужно_заменить_файл", после чего запускает программу "C:\Program Files\программа\файл_запуска.exe"

Iska 21-02-2013 14:33 2095888

Цитата:

Цитата vsesam
Имена компьютеров от P1 до P30

»

С этого и надо было начинать. С самого первого поста.

Меняйте здесь:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sPath=%ProgramFiles%\программа
set sFile=d:\папка_с_файлами_для_замены\%ComputerName%\файл_для_замены

if exist "%sFile%" copy "%sFile%" "%sPath%\папка_в_которой_нужно_заменить_файл\"
"%sPath%\файл_запуска.exe"

endlocal
exit /b 0

алогизмы на реальные имена и пробуйте.

vsesam 21-02-2013 14:52 2095906

Цитата:

Цитата Iska
set sPath=%ProgramFiles%\программа »

А если программа будет находится не на системном диске?
Например:
"D:\программа"
Что потребуется изменить?
Спасибо, Вы мне очень помогли.

Iska 21-02-2013 15:58 2095955

Цитата:

Цитата vsesam
А если программа будет находится не на системном диске?
Например:
"D:\программа"
Что потребуется изменить? »

Вы подразумеваете, что приложение было установлено не в «%ProgramFiles%»? Тогда указывайте путь, не используя переменные окружения, напрямую:
Код:

set sPath=D:\Путь к папке с приложением

vsesam 21-02-2013 16:30 2095985

Цитата:

Цитата Iska
Вы подразумеваете, что приложение было установлено не в «%ProgramFiles%»? Тогда указывайте путь, не используя переменные окружения, напрямую: »

Спасибо!
Решено!


Время: 11:01.

Время: 11:01.
© OSzone.net 2001-