Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование файлов из экселевского списка

Ответить
Настройки темы
CMD/BAT - [решено] Копирование файлов из экселевского списка

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть файл base.xls . В столбце Y начиная со второй строки указаны числовые id.
Имена файлов начинаются с символа "a", затем идёт id и разные расширения (например при id 3333 маска файлов будет a3333.* )
Файлы раскиданы по 5ти разным компьютерам в сети (имена pc1 - pc5), постоянно в одних и тех же каталогах (\\pc*\d$\base\), но постоянно на разных компах.
Как вытащить все id и заставить батник пройтись по всем компам и собрать эти файлы в локальный каталог (d:\base_all\) ?

На данный момент это огромный батник, заполняемый руками, что очень неудобно и долго
Код: Выделить весь код
xcopy \\pc1\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc2\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc3\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc4\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc5\d$\base\a4664.* d:\base_all\ /y /c
И так для каждого файла

-------
Watashi wa baka >.<


Отправлено: 03:10, 12-08-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Zayaca:
Как вытащить все id и заставить батник »
Никак. Потребуется Automation, чтобы «вытащить все id».

Поскольку Вы не выложили образец файла, придётся строить предположения. Будем считать, что данные находятся на первом листе рабочей книги.
читать дальше »
WSH:
Код: Выделить весь код
Option Explicit

Dim i


With WScript.CreateObject("Excel.Application")
	With .Workbooks.Open("E:\Песочница\0168\base.xls")
		With .Sheets.Item(1)
			i = 2
			
			Do
				With .Cells.Item(i, Asc("Y") - Asc("A") + 1)
					If Not IsEmpty(.Value) Then
						WScript.Echo .Value
						i = i + 1
					Else
						Exit Do
					End If
				End With
			Loop
		End With
		
		.Close
	End With
	
	.Quit
End With

WScript.Quit 0

Вы можете получить результат работы скрипта в пакетном файле посредством простого разбора, наподобие:
Код: Выделить весь код
for /f "usebackq delims=" %%i in (`cscript.exe //nologo "E:\Песочница\0168\0001.vbs"`) do echo %%i
Такой периодический набор:
Код: Выделить весь код
xcopy \\pc1\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc2\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc3\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc4\d$\base\a4664.* d:\base_all\ /y /c
xcopy \\pc5\d$\base\a4664.* d:\base_all\ /y /c
легко сворачивается в цикл:
Код: Выделить весь код
for %%j in (pc1 pc2 pc3 pc4 pc5) do xcopy \\%%j\d$\base\a4664.* d:\base_all\ /y /c
Таким образом, примерный вид может быть таким:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion


for /f "usebackq delims=" %%i in (`cscript.exe //nologo "E:\Песочница\0168\0001.vbs"`) do (
	for %%j in (pc1 pc2 pc3 pc4 pc5) do xcopy \\%%j\d$\base\a%%i.* d:\base_all\ /y /c
)

endlocal
exit /b 0

Последний раз редактировалось Iska, 12-08-2012 в 10:47. Причина: Убрал забытое отладочное echo из пакетного файла

Это сообщение посчитали полезным следующие участники:

Отправлено: 04:35, 12-08-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, работает.

-------
Watashi wa baka >.<


Отправлено: 10:03, 12-08-2012 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование файлов из экселевского списка

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Формирование списка файлов Sat_Kelman Скриптовые языки администрирования Windows 4 24-03-2011 09:27
CMD/BAT - [решено] Создание файлов из списка в txt kasik Скриптовые языки администрирования Windows 1 15-01-2011 20:04
PowerShell - [решено] Поиск файлов из списка Frenzy Скриптовые языки администрирования Windows 2 01-12-2010 18:21
Удаление файлов из списка указанного в txt blacks2 Вебмастеру 28 02-09-2009 20:09
C/C++ - Создание списка файлов Albreht Программирование и базы данных 2 20-07-2009 01:17




 
Переход