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

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

Автор: res2001
Дата сообщения: 20.05.2011 11:07
pfr
Не работает, видимо, из-за того что винда русская, а скрипт расчитан на английскую.
Замени везде Desktop на Рабочий стол.
Автор: Elroir
Дата сообщения: 20.05.2011 13:48
pfr

Цитата:
спасибо, но код что-то не работает ..

res2001 прав - в коде надо заменить названия на те, которые тебе нужны:

Код:
if exist "%usersPath%\%%a\Desktop\name.lnk" (
del /q "!usersPath!\%%a\Desktop\name.lnk"
copy "\\xxx\new_name" "%usersPath%\%%a\Desktop\"
)
Автор: 1nasty1
Дата сообщения: 20.05.2011 18:33
Подскажите, как сделать bat файл, который самоуничтожится после выполнения? без возможности восстановления (опционально).
Автор: 01MDM
Дата сообщения: 20.05.2011 19:09
1nasty1

Код:
@echo off

echo revenge and ...
echo ... suicide

1>nul ping -n 4 localhost

1>"%temp%\qwerty.cmd" (

echo cd.^>"%~f0"
echo del "%~f0"
echo del "%%~f0"

)

cmd /c "%temp%\qwerty"
Автор: HA3APET
Дата сообщения: 20.05.2011 23:06
Нужен bat файл запускающий программу, если программа не запущена.
Другими словами, что бы при запуске bat файла указанная программа не запускалась, если она уже запущена)
Есть у кого какие идеи?
Автор: zikol
Дата сообщения: 21.05.2011 00:40
HA3APET


Код:
@echo off
tasklist >c:\Proba.VqG
find /i "calc.exe"<c:\Proba.VqG>nul
if not errorlevel 1 goto ProbaaoAO
start calc.exe
:ProbaaoAO
del c:\Proba.VqG
Автор: HA3APET
Дата сообщения: 21.05.2011 02:03
zikol
Спасибо, работает!
Автор: Free_Soft
Дата сообщения: 21.05.2011 11:58
HA3APET
можно и в одну строчку:

Код: tasklist /fi "imagename eq calc.exe" 2>nul | find /i /n "calc.exe" >nul || start calc.exe
Автор: HA3APET
Дата сообщения: 21.05.2011 17:23
Free_Soft
Спасибо, как раз хотел это попросить)
Автор: oporgo
Дата сообщения: 22.05.2011 09:41
Выполнение сценария останавливается на данной строке, что еще нужно дописать?

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
Автор: Free_Soft
Дата сообщения: 22.05.2011 11:16
oporgo
ну так у тебя и написано, чтобы консоль не закрывалась. С завершением будет так:
Код: C:\Windows\System32\cmd.exe /с %windir%\System32\reg.exe...
Автор: Free_Soft
Дата сообщения: 22.05.2011 13:35
а вообще, если редактирование реестра выполняется из bat файла, вполне достаточно только этого:
Код: REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
Автор: zherebcov
Дата сообщения: 22.05.2011 16:44
set /p n="Введите N"
:restart2
cls
@echo Вы ввели %n%.

******* - много всякого, что выполняется.

@echo конечный результат >> bat.bat
FOR /L %%G IN (1,1,%n%) DO goto :restart2
start bat.bat

Такой батник
Вопрос: как сделать чтобы цикл после получения значения n позволил продолжить работу батника?

Суть в том что в этом батнике содержится несколько запросов которые нужно выполнить n раз.
Я четко осознаю что сейчас написано белиберда с циклом, ибо программа должна реализовываться в цикле а не до него. Подскажите.
Вопрос2: почему значение %G - невозможно использовать вне цикла? т.е. допустим каждый раз при зацикливании выводилось, аля: @echo Cейчас идет %G цикл.
Автор: 01MDM
Дата сообщения: 22.05.2011 17:20
zherebcov

Цитата:
как сделать чтобы цикл после получения значения n позволил продолжить работу батника?


Код:
@echo off
setlocal

set /p n="Введите N"
echo Вы ввели %n%.

FOR /L %%G IN (1,1,%n%) DO (

******* - много всякого, что выполняется.
echo конечный результат >> bat.bat

)

start bat.bat
Автор: zherebcov
Дата сообщения: 22.05.2011 18:35
Спасибо.
Я правильно понял: то что в скобках выполнится как раз n раз и батник продолжит работу после скобки?
Т.е. если n= 5 батник прокрутит 5 раз - () , и падает дальше?


Код:
setlocal
@echo.
set tm=%date:~6,4%-%date:~3,2%-%date:~0,2%
:restart
cls
@echo %tm%
time /t
set norders=
set drive=
set order=
set hddl=
set answer=
set n=
@echo.
set /p n="Введите количество заказов:"
FOR /L %%G IN (1,1,%n%) DO (
:restart2
cls
@echo Количество заказов: %n%
@echo %tm%
time /t
set /p drive="Введите Букву диска для -ой последовательности(только букву, без двоеточия):"
@echo.
vol %drive%:
@echo.
set /p answer="Данные верны? [y/n]:"
if not "%answer%" == "y" goto :restart2
@echo.
set /p order="Пожалуйста, введите номер заказа для N-ой последовательности:"
@echo.
@echo Помните, при указании метки диска номер заказа не будет учитываться!
@echo Введите метку переносного диска по МЧ (при записи группы заказов).
@echo ВАЖНО! Параметр метки регистрозависимый!
@echo.
set /p hddl="Метка для N-ой последовательности:"
@echo.
@echo Формирование файла запуска для N-ой последовательности...
@echo "%CD\cdrec.exe" -orderno=%order% -hddlabel=%hddl% -drive=%drive%: >> bat.bat
@echo N=%n%

)

pause
@echo.
@echo Запись заказа №%order% на носитель %drive%: завершена.
@echo.
pause
exit
Автор: Joo1z
Дата сообщения: 22.05.2011 19:40
Кто-нибудь подскажет есть ли в win7 встроенная утилита чтобы взять что-нибудь из буфера обмена? Есть CLIP, но это наоборот вставка в буфер, нужен обратный процесс.
Хочу создать ярлык который открывал бы мне в проводнике папку, путь которой находится в буфере обмена.
Автор: wolf0425
Дата сообщения: 22.05.2011 22:23
zherebcov

Цитата:
закрывается на ошибке: непредвиденное появление.
логично, метки внутри скобок запрещены.
выноси в подпрограмму.
Автор: pfr
Дата сообщения: 23.05.2011 08:07
res2001
Elroir
ну понятно дело, что и "Desкtop" на "Рабочий стол" поменял и всё остальное тоже ...
Автор: wolf0425
Дата сообщения: 23.05.2011 08:11
Чем бы из комстроки переключить язык в английскую раскладку ?
На стандартных XP/win7
Автор: res2001
Дата сообщения: 23.05.2011 11:00
wolf0425
Может через nircmd засылать нужную комбинацию клавиш в собственное окно?
Автор: Elroir
Дата сообщения: 23.05.2011 11:40
pfr
А что именно не работает? Выдается какая-нибудь ошибка?
Немного изменил код:

Код:
@echo off
setlocal
rem chcp 1251
call :setUsersFolder "%userprofile%
for /f "tokens=*" %%a in ('dir /ad /b "%usersFolder%"') do (
if exist "%usersFolder%\%%a\Desktop\name.lnk" (
del /q "%usersFolder%\%%a\Desktop\name.lnk"
copy "\\xxx\new_name" "%usersFolder%\%%a\Desktop\"
)
)
goto :EOF
:setUsersFolder
set "usersFolder=%~dp1"
set "usersFolder=%usersFolder:~0,-1%"
Автор: xq
Дата сообщения: 23.05.2011 14:00
Подскажите как в зависимости от версии win заставить батник выполнять команду.
Например, если XP, то одна команда, а если виста или 7-ка - другая
Спасибо.
Автор: Froz
Дата сообщения: 23.05.2011 14:40
xq,


Код:
@echo off
cls
echo.
:: Определяем версию Windows
for /f "tokens=4 delims=] " %%v in ('ver') do set v=%%v
if not %v:~1,1%==. for /f "tokens=5 delims=] " %%v in ('ver') do set v=%%v
if %v%==4.0.1381 echo OS: Windows NT 4.0 (v%v%)
if %v%==5.0.2195 echo OS: Windows 2000 (v%v%)
if %v%==5.1.2600 echo OS: Windows XP (v%v%)
if %v%==5.2.3790 echo OS: Windows Server 2003 (v%v%)
if %v%==6.0.6000 echo OS: Windows Vista (v%v%)
if %v%==6.0.6001 echo OS: Windows Vista SP1 (v%v%)
if %v%==6.1.7201 echo OS: Windows 7 (v%v%)
if %v%==6.1.7600 echo OS: Windows 7 (v%v%)
if %v%==6.1.7601 echo OS: Windows 7 SP1 (v%v%)
echo.
pause
Автор: xq
Дата сообщения: 23.05.2011 14:48
Froz
Спасибо большое

Цитата:
разумеется, командой может быть не только 'echo' =)

Автор: Joo1z
Дата сообщения: 23.05.2011 14:50
xq
Уже подсказали
Автор: A1exSun
Дата сообщения: 23.05.2011 17:58
Напишите пожалуйста батник:
1. Скопировать program.exe из текущей директории в "стандартная_папка_програм/test/program.exe"
2. Внести в реестр чтоб на правой клавише контекстного меню файлов любого типа был пункт "протестировать" и он запускал "стандартная_папка_програм/test/program.exe -путь_к_файлу"

И еще один для отмены этих действий.
Автор: lorents
Дата сообщения: 23.05.2011 18:32
Добрый день!
у меня есть текстовой файл и там есть строка

Цитата:
zc:# zm:# zs:# fs:# f:# IDAT=# file=#

где # - некие числа, при этом все они разные.

подскажите, пожалуйста, как можно узнать значения чисел при zm: и zs: ?
Автор: 01MDM
Дата сообщения: 23.05.2011 19:38
lorents

Код:
@echo off
setlocal

set "str=zc:1 zm:2 zs:3 fs:4 f:5 IDAT=6 file=7"

for /f "tokens=2,3" %%i in ( "%str::==%" ) do (

1>nul set "%%i"
1>nul set "%%j"

)

echo %zm%
echo %zs%
Автор: Nagual
Дата сообщения: 23.05.2011 19:52
lorents
Код:
for /f "tokens=4,6 delims=: " %%a in (file.txt) do (echo "%%a" "%%b")
Автор: lorents
Дата сообщения: 23.05.2011 19:57
01MDM
то что надо, спасибо. И еще один момент, не подскажешь, как сделать если у меня текстовой файл, и там эта сточка лежит неизвестно где?

Добавлено:
Nagual
и тебе спасибо, но вопрос тот же, я не знаю где эта сточка находится.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

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


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