Тогда имя папки будет выглядеть 123.01, а мне нужно 123-01.
» Командная строка, батники, сценарии (bat, cmd)
Стоп. Не так. Вот правильный вариант:
Код:
@echo off
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "dir_name=%%~na"
set "dir_ext=%%~xa"
for %%b in (1 2 3 4 5 6 7 8 9 0) do if "!dir_name:~0,1!"=="%%b" set "doit=yes"
if defined doit (
set "dir_name=!dir_name:.=-!"
if "!dir_ext:~2,1!"=="" set "dir_ext=-0!dir_ext:~1!"
ren "%%a" "!dir_name!!dir_ext!"
set "doit="))
Код:
@echo off
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "dir_name=%%~na"
set "dir_ext=%%~xa"
for %%b in (1 2 3 4 5 6 7 8 9 0) do if "!dir_name:~0,1!"=="%%b" set "doit=yes"
if defined doit (
set "dir_name=!dir_name:.=-!"
if "!dir_ext:~2,1!"=="" set "dir_ext=-0!dir_ext:~1!"
ren "%%a" "!dir_name!!dir_ext!"
set "doit="))
Не, этот вариант поменяет "." на "-" только там, где допишет "0"
Evgeniy15
Цитата:
Прав
Тогда так:
Код:
@echo off
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "dir_name=%%~na"
set "dir_ext=%%~xa"
if defined dir_ext set "dir_ext=-!dir_ext:~1!"
for %%b in (1 2 3 4 5 6 7 8 9 0) do if "!dir_name:~0,1!"=="%%b" set "doit=yes"
if defined doit (
set "dir_name=!dir_name:.=-!"
if "!dir_ext:~2,1!"=="" set "dir_ext=-0!dir_ext:~1!"
ren "%%a" "!dir_name!!dir_ext!"
set "doit="))
Цитата:
Не, этот вариант поменяет "." на "-" только там, где допишет "0"
Прав
Тогда так:
Код:
@echo off
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "dir_name=%%~na"
set "dir_ext=%%~xa"
if defined dir_ext set "dir_ext=-!dir_ext:~1!"
for %%b in (1 2 3 4 5 6 7 8 9 0) do if "!dir_name:~0,1!"=="%%b" set "doit=yes"
if defined doit (
set "dir_name=!dir_name:.=-!"
if "!dir_ext:~2,1!"=="" set "dir_ext=-0!dir_ext:~1!"
ren "%%a" "!dir_name!!dir_ext!"
set "doit="))
sv9205
Цитата:
Код:
@echo off
setlocal enabledelayedexpansion
set "counter=1"
for %%a in (*.rar) do call :archive "%%a"
if defined files rar a -m0 "!name!_pair.rar" !files!
goto :EOF
:archive
if defined files (
set "files=!files! %1"
set "pair=second"
set "name=!name!_%~n1"
) else (
set "files=%1"
set "pair=first"
set "name=%~n1"
)
if "!pair!"=="second" call :compress %1
goto :EOF
:compress
set "count=!counter!"
if !count! LSS 10 set "count=0!count!"
rar a -m0 "!name!_pair.rar" !files!
set /a "counter+=1"
set "files="
)
Цитата:
Как возможно завернуть автоматом все сразу, WinRAR архивы второй раз?(по два архива в один независимо).
Код:
@echo off
setlocal enabledelayedexpansion
set "counter=1"
for %%a in (*.rar) do call :archive "%%a"
if defined files rar a -m0 "!name!_pair.rar" !files!
goto :EOF
:archive
if defined files (
set "files=!files! %1"
set "pair=second"
set "name=!name!_%~n1"
) else (
set "files=%1"
set "pair=first"
set "name=%~n1"
)
if "!pair!"=="second" call :compress %1
goto :EOF
:compress
set "count=!counter!"
if !count! LSS 10 set "count=0!count!"
rar a -m0 "!name!_pair.rar" !files!
set /a "counter+=1"
set "files="
)
Elroir
Спасибо, это работает!
Правда я так и не разобрался с синтаксисом.
Где можно почитать?
Спасибо, это работает!
Правда я так и не разобрался с синтаксисом.
Где можно почитать?
Evgeniy15
IF /?
FOR /?
SETLOCAL /?
IF /?
FOR /?
SETLOCAL /?
Как при помощи батника подключить диск машины из локалки?
Rotorina
Цитата:
Net use /? тебе поможет
Цитата:
Как при помощи батника подключить диск машины из локалки?
Net use /? тебе поможет
vserd
Что не так?
Код:
net use E: name_in_my_computer \\computer_name\katalog user passwd
Что не так?
Код:
net use E: name_in_my_computer \\computer_name\katalog user passwd
Rotorina
Код: Net use E: \\Computer_Name\Katalog /User:User_Name User_Password
Код: Net use E: \\Computer_Name\Katalog /User:User_Name User_Password
Rotorina
Правильно так:
Код: net use E: \\computer_name\katalog passwd /USER:user
Правильно так:
Код: net use E: \\computer_name\katalog passwd /USER:user
всё просто
Цитата:
так заработало
сенкс
Цитата:
Net use E: \\Computer_Name\Katalog
так заработало
сенкс
KapralBel
Не увидел, что ты уже ответил
Не увидел, что ты уже ответил
Нужен батник, который такую картинку - [] преобразует вот в эту - []
Rotorina
Цитата:
В тексте поменять : gigi : на : lol : ?
Цитата:
Нужен батник, который такую картинку - [] преобразует в эту - []
В тексте поменять : gigi : на : lol : ?
Elroir
Неет, нужно вот эту картинку [] развернуть и заставить дивагстья вот так - []
Неет, нужно вот эту картинку [] развернуть и заставить дивагстья вот так - []
Rotorina
Как говорил известный персонаж мультика - "ничего не понимаю"!
Картинки, про которые ты говоришь, подставляет движок форума вместо кодов :гиги: и :лол: (латинскими буквами). При этом, я не понимаю, что тебе требуется заменить и где.
Как говорил известный персонаж мультика - "ничего не понимаю"!
Картинки, про которые ты говоришь, подставляет движок форума вместо кодов :гиги: и :лол: (латинскими буквами). При этом, я не понимаю, что тебе требуется заменить и где.
Люди помогите советом =)
Батник запускает последовательно 2 процесса(проги). Как при завершении первого сделать автоматическое завершение второго? И возможно ли закрытие самого батника после запуска последнего процесса без ожидания его завершения ?
Расскажите или киньте умную ссылку плиз )
Батник запускает последовательно 2 процесса(проги). Как при завершении первого сделать автоматическое завершение второго? И возможно ли закрытие самого батника после запуска последнего процесса без ожидания его завершения ?
Расскажите или киньте умную ссылку плиз )
Elroir
Я имел ввиду развернуть изображение и сделать его анимированным, что аж никак невозможно.
Сорри, если вынудил напрячься и оторвал время. Сегодня ж пятница ) . Думал, сразу станет ясно что к чему
Я имел ввиду развернуть изображение и сделать его анимированным, что аж никак невозможно.
Сорри, если вынудил напрячься и оторвал время. Сегодня ж пятница ) . Думал, сразу станет ясно что к чему
VeenK
Цитата:
Автоматически - никак. Нужно настроить постоянную проверку существования данного процесса (tasklist.exe) и в тот момент, когда его "не окажется в живых", убить второй процесс (taskkill.exe).
Цитата:
Запускай процессы командой "start /b "" process.exe" - батник не будет ожидать их завершения и закроется после запуска последнего.
Добавлено:
Rotorina
Все нормально
Цитата:
Как при завершении первого сделать автоматическое завершение второго?
Автоматически - никак. Нужно настроить постоянную проверку существования данного процесса (tasklist.exe) и в тот момент, когда его "не окажется в живых", убить второй процесс (taskkill.exe).
Цитата:
И возможно ли закрытие самого батника после запуска последнего процесса без ожидания его завершения ?
Запускай процессы командой "start /b "" process.exe" - батник не будет ожидать их завершения и закроется после запуска последнего.
Добавлено:
Rotorina
Все нормально
Цитата:
Нужно настроить постоянную проверку существования данного процесса (tasklist.exe) и в тот момент, когда его "не окажется в живых", убить второй процесс (taskkill.exe).
А можно поподробней ...
1. Как анализировать полученный с помощью tasklist.exe результат?
2. Как организовать постоянный контроль за процессом в фоновом режиме (если это ваще возможно)?
Прошу прощение за возможно очевидные вопросы просто я не очн силен в батниках
VeenK
Цитата:
Можно.
Первый батник start_procs.cmd :
Код:
@echo off
start notepad.exe
hstart /nowindow kill_second_process.cmd
start calc.exe
Цитата:
А можно поподробней ...
Можно.
Первый батник start_procs.cmd :
Код:
@echo off
start notepad.exe
hstart /nowindow kill_second_process.cmd
start calc.exe
Ребята, можно ли решить задачу с помощью батника ?:
нужно поменять IP, маску, шлюз на строго одном сетевом соединении. Из исходных данных известно, что сейчас IP вида 192.168.1.х. Так как имя соединения неизвестно, а соединений может быть несколько не могу "в лоб" воспользоватся netsh interface ip set.
нужно поменять IP, маску, шлюз на строго одном сетевом соединении. Из исходных данных известно, что сейчас IP вида 192.168.1.х. Так как имя соединения неизвестно, а соединений может быть несколько не могу "в лоб" воспользоватся netsh interface ip set.
Elroir
Цитата:
Меня чет это не очень устраивает =))
Я думал о том, чтобы при завершени процесса автоматически запускался батник и убивал 2 процесс. Скорее всего это можно реализовать токо дописав в прогу с дизассеблированием. Все равно спасибо за помощь.
а еще ...
Цитата:
Наверно я просто слепой но такого раздела не нашел
Цитата:
Во время работы второго батника, процессор грузится на 100 процентов.
Меня чет это не очень устраивает =))
Я думал о том, чтобы при завершени процесса автоматически запускался батник и убивал 2 процесс. Скорее всего это можно реализовать токо дописав в прогу с дизассеблированием. Все равно спасибо за помощь.
а еще ...
Цитата:
в разделе "Полезные утилиты"
Наверно я просто слепой но такого раздела не нашел
VeenK
Цитата:
Да нет - не слепой. Это я не обратил внимание, что отвечаю в теме "Командная строка, батники, сценарии (bat, cmd)", а не в "Задачи на bat-файлах 4", в шапке которой, действительно есть соответствующий раздел.
Цитата:
Дело в том, что процессор грузится потому, что постоянно идет опрос - есть ли данный процесс в памяти. Если сделать паузу между опросами в 2 секунды - такой загрузки уже не будет.
Цитата:
Наверно я просто слепой но такого раздела не нашел
Да нет - не слепой. Это я не обратил внимание, что отвечаю в теме "Командная строка, батники, сценарии (bat, cmd)", а не в "Задачи на bat-файлах 4", в шапке которой, действительно есть соответствующий раздел.
Цитата:
Во время работы второго батника, процессор грузится на 100 процентов.
Меня чет это не очень устраивает =))
Дело в том, что процессор грузится потому, что постоянно идет опрос - есть ли данный процесс в памяти. Если сделать паузу между опросами в 2 секунды - такой загрузки уже не будет.
KBJ
Попробуй:
Код:
@echo off
chcp 1251>nul
for /f "tokens=1 delims=[]" %%a in (
'ipconfig ^| find /n "192.168.1.1"') do set number=%%a & goto :sub
:sub
set /a count=%number%-4
for /f "tokens=1 delims=-" %%b in ('
ipconfig ^| more +%count%') do set "name=%%b" & goto :show
:show
set name=%name:~0,-1%
echo %name%
Попробуй:
Код:
@echo off
chcp 1251>nul
for /f "tokens=1 delims=[]" %%a in (
'ipconfig ^| find /n "192.168.1.1"') do set number=%%a & goto :sub
:sub
set /a count=%number%-4
for /f "tokens=1 delims=-" %%b in ('
ipconfig ^| more +%count%') do set "name=%%b" & goto :show
:show
set name=%name:~0,-1%
echo %name%
Maza Faka
Супер! Работает. Но не годится для случаев, если на одном интерфейсе назначено два IP (бывает и такое), т.к. выдаёт имя только при поиске IP самого меньшего (из, например, двух 192.168.0.1 и 192.168.1.1 - только для первого). Но это редкий случай, можно не учитывать.
А можно ли реализовать ещё это:
в некую переменную IP считать текущий IP (из найденно по маске 192.168.1.х) и чтением из файла произвести замену её значения по заданному типу: если 192.168.1.1 - то станет 192.168.0.1, 192.168.1.2 -> 192.168.0.22 и т.д.?
Супер! Работает. Но не годится для случаев, если на одном интерфейсе назначено два IP (бывает и такое), т.к. выдаёт имя только при поиске IP самого меньшего (из, например, двух 192.168.0.1 и 192.168.1.1 - только для первого). Но это редкий случай, можно не учитывать.
А можно ли реализовать ещё это:
в некую переменную IP считать текущий IP (из найденно по маске 192.168.1.х) и чтением из файла произвести замену её значения по заданному типу: если 192.168.1.1 - то станет 192.168.0.1, 192.168.1.2 -> 192.168.0.22 и т.д.?
KBJ
Можно, тупо сравнивая строки:
Код:
If %IP%==192.168.1.1 set IP=192.168.0.1
И т. д.
Можно, тупо сравнивая строки:
Код:
If %IP%==192.168.1.1 set IP=192.168.0.1
И т. д.
Уважаемые, прошу поучавствовать в опросе на тему:
Создание программы для оптимизации компьютера
Думаю, она будет весьма полезна для нашего брата админа (поставил и забыл, а она оптимизирует себе ).
Создание программы для оптимизации компьютера
Думаю, она будет весьма полезна для нашего брата админа (поставил и забыл, а она оптимизирует себе ).
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
Предыдущая тема: Problemi s zagruzkoy XP!
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.