Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Ответить
 • Просмотры: 5
Аватара пользователя
amel27

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение amel27 »

DImaN!,
Цитата DImaN!:



Как можно в VBScript получить путь к текущей директории
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов




Так:





Код:

Код: Выделить всё

Wscript.Echo GetScriptDir()
Function GetScriptDir()
	GetScriptDir = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\", -1, 1)-1)
End Function


Цитата DImaN!:



К примеру, на диске С в папке folder находится какой-то file.zip, нужно его распаковать средствами VBScript.

Но нужно, чтобы сам файл скрипт искал в той же директории, где и он сам находится (+ желательно, чтобы он искал все архивы и их распаковывал).
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов




Можно попробовать примерно так (не тестировал):





Код:

Код: Выделить всё

'On Error Resume Next
Dim sScriptDir, sZipsDir, sUnZipDir
Set FSO 		= WScript.CreateObject("Scripting.FileSystemObject")
Set oShell 		= WScript.CreateObject("Shell.Application")
sScriptDir 		= Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\", -1, 1)-1)
sZipsDir 		= sScriptDir
sUnZipDir 		= sScriptDir
Set oRoot 		= FSO.GetFolder(sZipsDir)
Set oAllFiles		= oRoot.Files
For Each oFile in oAllFiles
	If Right(oFile.Name, 4) = ".zip" Then UnZipFiles oFile.Path, sUnZipDir
Next
Function UnZipFiles(sZipFile, sDest)
	'Get zip file namespace object
	Set oFolder = oShell.NameSpace(sZipFile)
	'Get list of items in zip file
	Set oItems = oFolder.Items
	'If not exists, create destination folder
	If FSO.FolderExists(sDest) = 0 Then FSO.CreateFolder(sDest)
	'Get destination folder namespace object
	Set oDest = oShell.NameSpace(sDest & "\")
	'Extract the files
	oDest.CopyHere oItems, 64
End Function
Аватара пользователя
Freezet

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение Freezet »

amel27, справку читал и основные команды понимаю.. Кое что могу и сам но все же каждый будет делать по своему, как ему легче. мой вариант будет плохим, так как новичок Изображение



При запуске батника пишет Системе не удается найти указанный путь



на счет совпадений имен думаю их не будет или очень-очень редко Изображение
Аватара пользователя
amel27

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение amel27 »

Нужна помощь!!! Нужно скопировать файлы с одного сервера на другой. Проблема заключается в том, что server2 включается каждий день в неизвестное время с 9AM до 12 AM

copy /Y /Z "\\server1\Share$\BACKUP\*.bkp", "\\server2\Share$\BACKUP\*.bkp"

Т.е. если server2 нету должен сработать таймер пока server2 не появится. Команда АТ не катит.

Заранее спасибо за ответы
Аватара пользователя
Rostlv

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение Rostlv »

amel27, уточнения по вопросу 4:

Нужно, чтобы этот код работал на протяжении всего CMD-скрипта, а не единожды, как это сделать?




Цитата:



Set PROCESS=cmd.exe

For /F %%i In ('TaskList^|FindStr /BIC:"%PROCESS%"') Do Set PROCNAME=%%i

If "%PROCNAME%"=="" (

Del /F /Q %0

GoTo :EOF

)



уточнения по вопросу 7:

Код работает, но записывает квадратики, как установить правильную кодировку?
Аватара пользователя
amel27

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение amel27 »

Как в батнике сделать чтобы был выбор. Например: Выбирите номер дейсвия (1,2,3,4). Допустим если выбирают 1 то выполняется одна команда, если 2 то другая...и т.д.
Аватара пользователя
DImaN!

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение DImaN! »

Добрый день. Я уже задавал этот вопрос в теме по AutoIT, но меня перенаправили сюда. Не могли бы Вы мне помочь с одной маленькой задачей, а именно:

Как можно в VBScript получить путь к текущей директории и zip-архиву. К примеру, на диске С в папке folder находится какой-то file.zip, нужно его распаковать средствами VBScript.

Но нужно, чтобы сам файл скрипт искал в той же директории, где и он сам находится (+ желательно, чтобы он искал все архивы и их распаковывал).

Вот пример моего кода, который как я написал распаковывает только указанный файл в указанной директории:



Код:

Код: Выделить всё

strZipFile = "c:\folder\file.zip"         
outFolder = "c:\folder" 
Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items()
Set objTarget = objShell.NameSpace(outFolder)
intOptions = 256
objTarget.CopyHere objSource, intOptions
Аватара пользователя
DImaN!

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение DImaN! »

Creat0R, огромное спасибо! Все замечательно работает... Осталось только капитально разобраться в Вашем скрипте
Аватара пользователя
DImaN!

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение DImaN! »

Цитата:



GoTo :EOF



не совсем понятен переход в конец содержимого файла (EOF) и не совсем понятен смысл-


Цитата Rostlv:



и в случае отсутствия хотя-бы одного, вывести окошко с текстом об отсутствии файлов.
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов




Я в этом написании не силён, но при отсутствии файлов больше чем один, вы просто не заметите какой отсутствует. Это будет происходить очень быстро
Аватара пользователя
NBA

Re: Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Сообщение NBA »

Rostlv,
Цитата Rostlv:



Нужно написать код для проверки большого количества файлов в разных директориях, и в случае отсутствия хотя-бы одного, вывести окошко с текстом об отсутствии файлов.
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов





Предложу так:




Код:

Код: Выделить всё

@echo off
if exist file1.ext (
call :yes1 ) else (
call :no1
)
:yes1
if exist file2.ext (
call :yes2 ) else (
call :no2
)
rem и т.д.
:no1
cls
echo Файл file1.ext не существует!
pause
exit
:no2
cls
echo Файл file2.ext не существует!
pause
exit








Но это слишком долго, если нужен
Цитата Rostlv:



код для проверки большого количества файлов в разных директориях
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов





Цитата Rostlv:



Как с помощью CMD создать реально работающий прогрессбар?
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов




Насколько мне известно, никак. Копайте в сторону VBS и/или
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
'a


Цитата Rostlv:



Чем лучше всего компилировать cmd-файл в .exe
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов




Quick Batch File Compiler
Ответить

Вернуться в «Скриптовые языки администрирования Windows»