Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 13

Скрипт, запускающий команду в cmd

09.04.2020, 23:49. Показов 6668. Ответов 21
Метки bat, vbs (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, обитатели форума.
Сразу оговорюсь - мои навыки программирования весьма базовые на уровне хлебушка, но у меня есть страсть к автоматизации Excel отчётности и сейчас я столкнулся с тем, что мне нужно научиться писать простые скрипты. Вот суть проблемы (осторожно, много букв):
Для того, чтобы избавиться от лишних телодвижений , мне нужно сделать скрипт,который запустит cmd и прогонит следующие команды:
1. "cd (переход в директорию локализации файлов Excel)
2. copy *.csv 1.csv
То есть, если делать это ручками через cmd , набор этих команд склеивает два однотипных файла Excel.

Вопрос: как создать файл .vbs (либо .bat я хз), чтобы этот процесс выполнялся автоматически?

Заранее огромное спасибо за помощь!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2020, 23:49
Ответы с готовыми решениями:

Как создать скрипт, запускающий определённую процедуру по закрытию браузера?
Помогите решить такую задачу: В win2008server с ролью терминального сервера пользователь работает через RDP в браузере. Нужно...

Скрипт запускающий службы в определенном порядке
Коллеги, всем доброго времени суток. Возникла потребность написать bat скрипт, который запускает службы Windows в определенной...

Как создать скрипт запускающий ярлык с параметром
Подскажите пожалуйста, как создать скрипт который будет открывать ярлык с параметром?

21
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 13
03.06.2020, 09:26  [ТС]
Студворк — интернет-сервис помощи студентам
1. Да, без вопросов
2. Все верно, только первый лист
3. Есть заголовочные, но это не важно, главное чтобы колонка к колонке все файлы слились, друг под друга
4. Тоже не имеет значения, будет ли отделение одного от второго, лишь бы просто друг под друга всё это дело заливалось, дальше уже понятно, что делать

Но я так понимаю, что нужно писать новый скрипт, а этот не переделать никак под .xlsx, верно? Или переделать?

Спасибо
0
малоболт
1328 / 510 / 213
Регистрация: 30.01.2020
Сообщений: 1,244
03.06.2020, 16:57
Romancobran, Ну, давайте попробуем так начать:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Const HdrLines=1 'число строк заголовка (можно поставить 0)
Folder = "C:\Users\MiNotebook\Desktop\Otchet" 'ваша папка
Set oShA = CreateObject("Shell.Application")
Set oFiles = oShA.NameSpace(Folder).Items 
oFiles.Filter 64,"*.xlsx" 'выбираем только файлы с расширением .xlsx
If oFiles.Count <> 2 Then WSH.Quit 'считаем, что их должно быть ровно 2, но можно и поправить на любое кол-во
Set xl = CreateObject("Excel.Application") 'стартуем excel
Set wbo = xl.Workbooks.Add 'Создаем пустую книгу
Set wso = wbo.Sheets.Item(1) 'это её первый лист
xl.Visible = False ' на что тут смотреть-то?
ii = 1 ', строка, начиная с которой вставляем
Set wbi = xl.Workbooks.Open(Folder & "\" & oFiles.item(0).Name) 'приоткроем чуть-чуть один из файлов
Set wsi = wbi.Sheets.Item(1)
if HdrLines > 1 Then  'Если есть заголовок
  ii = HdrLines 'выделим его
end if
Set rr = wsi.Range(wsi.cells(1,1),wsi.Cells(ii, wsi.Columns.count).End(-4159)) 'определяем длину строки заголовка или первой
rr.copy 'копируем в буфер
wso.pastespecial(8) 'приводим ширины колонок к исходным
if HdrLines > 0 Then ' если заголовок не нулевой копируем и его
  wso.paste
  ii = HdrLines+1
end if
xl.CutCopyMode = False 'очистим буфер, чтобы не задолбал лишними вопросами при закрытии файла
wbi.close(False) 'приподзакроем этот файл
 
For Each F In oFiles ' теперь одинаково для всех файлов
  Set wbi = xl.Workbooks.Open(Folder & "\" & f.Name) 'Открыли
  Set wsi = wbi.Sheets.Item(1) 'первый лист
  Set rr = wsi.Range(wsi.cells(wsi.rows.count,1).End(-4162),wsi.Cells(1+HdrLines, wsi.Columns.count).End(-4159)) 'определим заполненный диапазон
  rr.copy wso.cells(ii,1) 'скопируем его в новый файл
  ii = ii + rr.Rows.Count 'Номер текущей строки ставим после вставленного фрагмента
  xl.CutCopyMode = False 'чистим буфер, на всякий случай
  wbi.close(False) 'закрываем исходный файл
Next '...и по кругу...
wbo.saveAs Folder &"\output",51 'сохраняем тот, куда всё накопировали
wbo.close ' закрываем его и чистим объекты
Set oFiles = Nothing: Set oSha = Nothing: Set xl = Nothing
Set wbi = Nothing: Set wbo = Nothing
Set wsi = Nothing: Set wso = Nothing
Соответственно, сохранить в файл с расширением .vbs
Excel открывается в режиме невидимости, обрабатывает файлы и тихо, незаметно прекращает свою деятельность.
Файл output.xlsx создаётся в той же папке.
Если нужно, можно сливать вместе не только 2 файла - достаточно поправить 6 строку.

На время отладки я бы рекомендовал в 10 строке включить видимость файлов Excel
Visual Basic
1
xl.Visible = True
,чтобы не искать и не убивать каждый раз зависший EXCEL.EXE в списке процессов, а просто закрывать открывшиеся файлы. А как только всё начнет работать без проблем - опять вернуть видимость в False.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.06.2020, 16:57

Требуется написать скрипт, запускающий приложение с CD-диска
Требуется написать скрипт запускающий приложение с CD-диска, независимо оттого откуда он был отправлен на выполнение... буква диска...

Как написать серверный lua скрипт для игры Garry's mod (hl2), запускающий скрипт из клиентской части по команде ?
Вся суть скрипта - по команде в чат запускать другой скрипт. Как все реализовано? Все скрипты запихнул в addons, как отдельный addon. В...

Запускающий скрипт. Особенность работы
Работаю с программой Modem Manager. Нужно реализовать в собственном приложение некоторые функции Modem Manager. Просмотрев исходники нашел...

Написать скрипт Bash, компилирующий и запускающий программу
Задача: Написать скрипт, компилирующий и запускающий программу (имя исходного файла и exe-файла результата задаётся пользователем в...

Скрипт, запускающий тулзы разных версий. Кроссплатформенность
Вопросы возникли в следующем: 1) Часто возникает необходимость создать скрипт (например, под Windows и Linux), который должен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru