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

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

Ответить
Настройки темы
CMD/BAT - [решено] pop-up окно из батника

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


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


Конфигурация

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


доброго времени суток!
есть ежедневная рутинная задача - копировать файлы в папки с заданным именем. имя папки берется из переменной, которую я создаю так:
Код: Выделить весь код
Set /p folder="Введите имя каталога:"
но все происходит в черном окне смд, а мне бы хотелось, чтобы было всплывающее окошко виндовз с приглашением ввести имя и кнопочкой ОК, и дальше, если все успешно, не просто echo в черном окошечке, а какой нибудь алерт окно, что операция прошла успешно, как осуществить?
заранее благодарен!

-------
Пессимист видит трудности при каждой возможности


Отправлено: 13:14, 06-08-2013

 

Ветеран


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

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


oleg-sm, без сторонних средств на «чистых» пакетных файлах сие не реализовать. Переходите на WSH или PoSH. Опишете задачу целиком — возможно, Вам и сделают.

Вы вводите только имя папки или путь целиком? Существующей или не существующей папки?
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:55, 06-08-2013 | #2



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

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


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


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

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


в общем код выглядит примерно так (довольно примитивно, будет еще дорабатываться):
Код: Выделить весь код
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
Set /p folder="Введите имя каталога:"

ping -n 1 -l 1 -w 1000 192.168.10.20
if "!ErrorLevel!"==0(
	mkdir "\\192.168.10.20\new\%folder%"
	copy "C:\newfile\bsv\list.txt" "\\192.168.10.20\new\%folder%\"
)else(
	echo "BSV1 выключена"
)
Ping -n 1 -l 1 -w 1000 192.168.20.30
if "!ErrorLevel!"==0(
	mkdir "\\192.168.20.30\new\%folder%"
	copy "C:\newfile\bsv\list.txt" "\\192.168.20.30\new\%folder%\"
)else(
	echo "BSV2 выключена"
)
будет еще проверки на запись или неудачу (если нет пинга) в папки с помощью if else
вот и хотелось бы алерты не в смд, а интерактивно, чтобы я знал, что произошло.

заранее спасибо

-------
Пессимист видит трудности при каждой возможности


Отправлено: 19:46, 06-08-2013 | #3


Ветеран


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

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


oleg-sm, зачем пинг? Достаточно ведь просто проверить существование удалённого ресурса «\\192.168.10.20\new».

Не проверялось:
Код: Выделить весь код
Option Explicit

Dim strNewFolder
Dim strShare
Dim strPath


strNewFolder = Trim(InputBox("Input new folder name", "Input folder name", "New folder"))

If Len(strNewFolder) <> 0 Then
	With WScript.CreateObject("Scripting.FileSystemObject")
		For Each strShare In Array("\\192.168.10.20\new", "\\192.168.10.30\new2")
			If .FolderExists(strShare) Then
				strPath = .BuildPath(strShare, strNewFolder)
				
				.CreateFolder strPath
				.CopyFile "C:\newfile\bsv\list.txt", strPath & "\", True
			Else
				WScript.Echo "Can't find share [" & strShare & "]."
			End If
		Next
	End With
Else
	' Nothing input
End If

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

Отправлено: 20:21, 06-08-2013 | #4


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


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

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


Iska, право, даже не знаю, что вам и ответить большое спасибо, за ваш труд и не безразличие, но только этот код я не смогу править сам, ведь не знаю ВБ, а проще способа случайно нет? )

-------
Пессимист видит трудности при каждой возможности


Отправлено: 21:47, 06-08-2013 | #5


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


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

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


проверил, работает, только выдает ошибку в строке 16 символ 5 - файл уже существует

-------
Пессимист видит трудности при каждой возможности


Отправлено: 22:14, 06-08-2013 | #6


Ветеран


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

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


Цитата oleg-sm:
а проще способа случайно нет? ) »
Царская дорога как метафора .

Не переживайте, не боги горшки обжигают. Учиться никогда не поздно.

Цитата oleg-sm:
проверил, работает, только выдает ошибку в строке 16 символ 5 - файл уже существует »
Это «.CreateFolder strPath». Будем создавать папку только тогда, когда она не существует:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim strNewFolder
Dim strShare
Dim strPath


strNewFolder = Trim(InputBox("Input new folder name", "Input folder name", "New folder"))

If Len(strNewFolder) <> 0 Then
	With WScript.CreateObject("Scripting.FileSystemObject")
		For Each strShare In Array("\\192.168.10.20\new", "\\192.168.10.30\new2")
			If .FolderExists(strShare) Then
				strPath = .BuildPath(strShare, strNewFolder)
				
				If Not .FolderExists(strPath) Then
					.CreateFolder strPath
				End If
				
				.CopyFile "C:\newfile\bsv\list.txt", strPath & "\", True
			Else
				WScript.Echo "Can't find share [" & strShare & "]."
			End If
		Next
	End With
Else
	' Nothing input
End If

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

Отправлено: 22:52, 06-08-2013 | #7


Аватара для McLotos

Старожил


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

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


проще на autoit, но его тоже учить нужно
Так что из таких вариантов (не bat) выбор не велик, либо autoit либо VBS
на autoit это будет что-то вроде
Наверное как-то так:
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate('Копирование', 320, 150)
GUICtrlCreateLabel('Копируемая директория:', 8, 10)
$Input1 = GUICtrlCreateInput("", 8, 30, 257, 21)
$Button1 = GUICtrlCreateButton("...", 272, 25, 35, 25)
GUICtrlCreateLabel('Пункт назначения:', 8, 60)
$Input2 = GUICtrlCreateInput("", 8, 80, 257, 21)
$Button2 = GUICtrlCreateButton("...", 272, 80, 35, 25)
$Button3 = GUICtrlCreateButton("Начать копирование", 100, 120, 120, 25)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            $folder1 = FileSelectFolder("Выберите каталог.", "", '', '', GUICreate(''))
            GUICtrlSetData($Input1, $folder1)
        Case $Button2
            $folder2 = FileSelectFolder("Выберите каталог.", "", '', '', GUICreate(''))
            GUICtrlSetData($Input2, $folder2)
        Case $Button3
            If GUICtrlRead($Input1) = "" Then
			   MsgBox(0,'Ошибка','Не казан каталог-источник')
			ElseIf GUICtrlRead($Input2) = "" Then
			   MsgBox(0,'Ошибка','Не указан каталог назначения')
			Else
			   MsgBox(0,'',$folder1)
			   DirCopy ($folder1,$folder2,0) ;если третий параметр 1 тогда с перезаписью файлов с одинаковыми именами
			EndIf
    EndSwitch
WEnd
за работоспособность не ручаюсь, писалось прямо здесь

-------
Старайтесь не решать свои проблемы по средствам личных сообщений, они могут быть решены очень не скоро.Не забывайте пользоваться поиском по форуму.Помните что уникальных проблем не бывает.Если всё-таки ответа не нашли, создайте тему, с подробным описанием проблемы.Спасибо за понимание.

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

Отправлено: 22:53, 06-08-2013 | #8


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


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

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


насколько я понимаю, ВБ вроде распространней будет, а есть какой то мануальчик, как быстрее осовить его? не книга, а может сборник готовых решений и основы синтаксиса?

-------
Пессимист видит трудности при каждой возможности


Отправлено: 23:04, 06-08-2013 | #9


Ветеран


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

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


Цитата oleg-sm:
насколько я понимаю, ВБ вроде распространней будет »
WSH — встроенное решение Windows.

Цитата oleg-sm:
а есть какой то мануальчик, как быстрее осовить его? не книга, а может сборник готовых решений и основы синтаксиса? »
Поройтесь здесь: Windows Script Host: Коллекция ссылок. Ссылки на курсы на Askit.ru, ссылки на сборники готовых решений и т.п.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:34, 07-08-2013 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Создание файла из батника Hrist Скриптовые языки администрирования Windows 9 18-01-2013 11:26
CMD/BAT - [решено] Убрать строчки с pause из батника game_Racer Скриптовые языки администрирования Windows 3 18-06-2011 16:27
CMD/BAT - [решено] Удаление каталогов на FTP из батника shraybikus Скриптовые языки администрирования Windows 8 24-05-2011 15:02
CMD/BAT - [решено] Запустить из батника секцию Inf-а Nun-Nun Скриптовые языки администрирования Windows 1 06-01-2011 02:35
CMD/BAT - [решено] Запуск программ из батника akrav Скриптовые языки администрирования Windows 16 27-05-2009 00:19




 
Переход