Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 10

Автор: res2001
Дата сообщения: 26.04.2011 12:03
for %%a in (<путь откуда копировать>\*) do copy /y/b %%a <путь куда копируем> & exit
Автор: lorents
Дата сообщения: 26.04.2011 17:20
Добрый день! Подскажите, как запустить exe-файл так, чтобы он был всегда поверх bat?
Автор: ASE_DAG
Дата сообщения: 26.04.2011 18:03
lorents
> как запустить exe-файл так, чтобы он был всегда поверх bat?
ЩИТО?
Автор: lorents
Дата сообщения: 26.04.2011 18:26
ASE_DAG
как запустить exe-файл через bat так, чтобы он был поверх него?
Автор: 01MDM
Дата сообщения: 26.04.2011 19:11
lorents
Что бы окно запущенной программы было поверх остальных окон? Можно с помощью nircmd
На примере блокнота:

Код:
@echo off
setlocal

start "" "notepad"

set "wmic=wmic process where name="notepad.exe" get processid /value"
for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"

nircmdc win settopmost process /%processid% 1
Автор: lorents
Дата сообщения: 26.04.2011 19:32
01MDM
Выдает

Цитата:
"wmic" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

мне надо только поверх bat
Автор: 01MDM
Дата сообщения: 26.04.2011 19:42
lorents

Цитата:
Выдает

Win XP Home? Или в %PATH% нет C:\WINDOWS\System32\Wbem ?
Автор: lorents
Дата сообщения: 26.04.2011 20:06
01MDM

Цитата:
Win XP Home?

да. Ладно если не выходит, то не страшно.
Автор: 01MDM
Дата сообщения: 26.04.2011 20:37
lorents
У меня тоже ХР Home, если нужен wmic -- распакуй и запусти wmic.exe
wmic
Автор: lorents
Дата сообщения: 26.04.2011 21:08
01MDM
Спасибо, сейчас сделаю

Хотел поблагодарить все кто мне помогал
Подскажите, как узнать, пустое ли значение переменной или нет?
Автор: 01MDM
Дата сообщения: 26.04.2011 21:53
lorents

Цитата:
Подскажите, как можно определить существует папка или нет?

Просто:

Код:
if exist c:\some\folder что-то делаем
Автор: lorents
Дата сообщения: 26.04.2011 22:06
01MDM
я с начало спросил, а потом вспомнил, но спасибо.

Подскажите, как узнать, пустое ли значение переменной или нет?
Автор: 01MDM
Дата сообщения: 26.04.2011 22:12
lorents
Пустых переменных не бывает.

Код:
if /?
if defined
Автор: lorents
Дата сообщения: 27.04.2011 09:13
01MDM
благодарю.

Подскажите, а как такой код можно скомпоновать следующий код?

Код: if defined png if "%png%" neq "0" if "%png%" neq "1" if "%png%" neq "2" if "%png%" neq "3" if "%png%" neq "4" if "%png%" neq "5" if "%png%" neq "6" if "%png%" neq "7" if "%png%" neq "8" (
    echo Error. Вы указали неправильное значение параметра оптимизации PNG.
    echo.
    goto:loop1
)
if not defined png (
    echo Error. Вы указали неправильное значение параметра оптимизации PNG.
    echo.
    goto:loop1
)
Автор: smirnvlad
Дата сообщения: 27.04.2011 09:55
lorents
если пробелы не помешают до/после цифры в переменной png то:

Код: [no]
if not defined png goto:png_error
if %png% geq 0 if %png% leq 8 goto:png_ok

:png_error
echo Error. Вы указали неправильное значение параметра оптимизации PNG.
echo.
goto:loop1

:png_ok
[/no]
Автор: lorents
Дата сообщения: 27.04.2011 13:23
smirnvlad
Спасибо, выходи без :png_error не выходит


Код: set folder=
set /p folder=
if not defined folder set folder=Images
if not exist "%folder%" (
    goto:loop
)
Автор: Bezzz
Дата сообщения: 27.04.2011 13:31

Цитата:
Подскажите еще один момент, как сделать проверку, существует ли такая папка или нет?


Код: if exist c:\mydir\nul dir c:\mydir
Автор: lorents
Дата сообщения: 27.04.2011 13:39
Bezzz
не много нет. Переформулирую вопрос, как определить, указан путь к папки и ли к файлу?
Автор: Bezzz
Дата сообщения: 27.04.2011 13:41
lorents
Всё то.

Код: if exist c:\mydir\nul dir c:\mydir
Автор: wolf0425
Дата сообщения: 27.04.2011 15:11

Цитата:
как сделать проверку, существует ли такая папка или нет?

Код: 1>nul 2>nul dir /ad c:\mydir && echo Folder exist!
Автор: lorents
Дата сообщения: 27.04.2011 15:36
Bezzz, wolf0425
Понял, про что Вы говорите, вроде сделал и работает. Спасибо большое.

Код: @echo off

set folder=
set /p folder=

1>nul 2>nul dir /ad %folder%
if errorlevel 1 (
    echo Папка не найдена
) else (
    echo Папка найдена
    )
)
pause
Автор: wolf0425
Дата сообщения: 27.04.2011 15:46
lorents побочным и неприятным эффектом от проверки существования диром - является её большая продолжительность в случаях, если в папке лежит несколько сотен тысяч файлов. А при нескольких тысячах - ещё вполне терпимо (хотя в цикл тоже лучше не ставить)




Как из командной строки остановить или наоборот стартовать встроенный виндовый фаервол?
Автор: 01MDM
Дата сообщения: 27.04.2011 16:33
wolf0425

Цитата:

Как из командной строки остановить или наоборот стартовать встроенный виндовый фаервол?

Попробуй:

Код:
netsh firewall set opmode enable/disable
Автор: lorents
Дата сообщения: 27.04.2011 17:35
wolf0425 понятно, но как я понимаю, другого выхода нету.

Код: :loop
set folder=
set /p folder=
if not defined folder set folder=Images
1>nul 2>nul dir /ad "%folder%"
if errorlevel 1 (
    echo Error. Указанная папка не обнаружена.
    goto:loop
)
Автор: 01MDM
Дата сообщения: 27.04.2011 17:59
lorents
А чем не устроил вариант с if exist папка\nul ?
Автор: lorents
Дата сообщения: 27.04.2011 18:19
01MDM
Я просто не понял, как сделать мое задуманное через if exist папка\nul
а он лучше чем 1>nul 2>nul dir /ad папка?
Автор: smirnvlad
Дата сообщения: 27.04.2011 18:23
lorents
if %folder:~0,1%""" == """" if %folder:~-1,1%""" == """" set "folder=%folder:~1,-1%"

01MDM

Цитата:
А чем не устроил вариант с if exist папка\nul ?


а как его заставить работать с пробелами в пути папки?


Код:
if not exist C:\Documents and Settings echo.1
if not exist C:\Documents and Settings\nul echo.2
if not exist "C:\Documents and Settings\nul" echo.3
if not exist "C:\Documents and Settings"\nul echo.4
if not exist "C:\Documents and Settings\"nul echo.5
Автор: 01MDM
Дата сообщения: 27.04.2011 18:28
lorents

Код:
:loop
set "folder="
set /p folder="Укажите путь: "

if not defined folder set "folder=Images"
if not exist %folder%\nul (

echo Error. Указанная папка не обнаружена.
goto:loop

)
Автор: lorents
Дата сообщения: 27.04.2011 18:42
smirnvlad

Цитата:
if %folder:~0,1%""" == """" if %folder:~-1,1%""" == """" set "folder=%folder:~1,-1%"

А можно сделать, чтобы поддерживал такие варианты:
"D:\Прочее\Image Catalyst\Tools
D:\Прочее\Image Catalyst\Tools"
Автор: smirnvlad
Дата сообщения: 27.04.2011 19:35
lorents

Цитата:
можно сделать, чтобы поддерживал такие варианты:

только если удалять все кавычки из строки, а не только в начале и конце
set "folder=%folder:"=%"

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.