можно ли с помощью бат файла удалить n-ое количество строк из txt файла ? нужно из логов каждый день удалять примерно по 100 строк)
» Командная строка, батники, сценарии (bat, cmd)
alers
Где удалить ?
В начале или в конце?
В начале - очень легко
FOR /F "skip=100 delims=" %%a in (1.txt) Do Echo %%a>2.txt
Где удалить ?
В начале или в конце?
В начале - очень легко
FOR /F "skip=100 delims=" %%a in (1.txt) Do Echo %%a>2.txt
подскажите как сделать:
нужно через if проверить существование папки (c:\Documents and Settings\All Users\Главное меню\Программы), если есть то ... если нет перейти к след пункту
конкретный пример нужно положить ярлык в меню пуск - программы, но сложность в том что дома англ версия винды, а на работе русская
нужно через if проверить существование папки (c:\Documents and Settings\All Users\Главное меню\Программы), если есть то ... если нет перейти к след пункту
конкретный пример нужно положить ярлык в меню пуск - программы, но сложность в том что дома англ версия винды, а на работе русская
kalkin5
Код:
if exist "c:\Documents and Settings\All Users\Главное меню\Программы\nul" (...) else (...)
Код:
if exist "c:\Documents and Settings\All Users\Главное меню\Программы\nul" (...) else (...)
Elroir
Цитата:
Это ты погорячился. Так не работает. Т.е. работает, но только для коротких имён.
Цитата:
if exist "c:\Documents and Settings\All Users\Главное меню\Программы\nul" (...) else (...)
Это ты погорячился. Так не работает. Т.е. работает, но только для коротких имён.
Smitis
Цитата:
Черт! Прав, конечно.
kalkin5
Ну тогда так:
Код:
@echo off
for /f "tokens=*" %%a in ("c:\Documents and Settings\All Users\Главное меню\Программы") do (
if exist %%~sa\nul (...) esle (...)
)
Цитата:
Это ты погорячился. Так не работает. Т.е. работает, но только для коротких имён.
Черт! Прав, конечно.
kalkin5
Ну тогда так:
Код:
@echo off
for /f "tokens=*" %%a in ("c:\Documents and Settings\All Users\Главное меню\Программы") do (
if exist %%~sa\nul (...) esle (...)
)
Elroir
Лучше так (пример):
Код:
@echo off
call :direxist "C:\Program Files\Windows Media Player"
if errorlevel 1 echo OK!
if not errorlevel 1 echo NO!
call :direxist "C:\Program Files\Windows Media Player\mplayer2.exe"
if errorlevel 1 echo OK!
if not errorlevel 1 echo NO!
goto:eof
:direxist
setlocal
set a=%~a1
set b=%a:d=%
if %a% == %b% exit/b
exit/b 1
Лучше так (пример):
Код:
@echo off
call :direxist "C:\Program Files\Windows Media Player"
if errorlevel 1 echo OK!
if not errorlevel 1 echo NO!
call :direxist "C:\Program Files\Windows Media Player\mplayer2.exe"
if errorlevel 1 echo OK!
if not errorlevel 1 echo NO!
goto:eof
:direxist
setlocal
set a=%~a1
set b=%a:d=%
if %a% == %b% exit/b
exit/b 1
Цитата:
Т.е. работает, но только для коротких имён.
Можно путь к папке с пробелами заключать в кавычки и после кавычек ставить обратный слэш(без NUL)
Код:
if exist C:\TEST\NUL echo OK!
if exist "C:\Program Files\Windows Media Player"\ echo OK!
igor_andreev
Неплохо
Только обратный слешь можно и внутри кавычек ставить.
Неплохо
Только обратный слешь можно и внутри кавычек ставить.
всем спасибо, кто откликнулся
всегда хотелось узнать можно ли с помощью bat файла создать ярлык к файлу,
если можно на примере пож-та:
Файл: %ProgramFiles%\TC_EX\totalcmd.exe
Аргументы: /I=".\Profiles\work\wincmd.ini" /F=".\Profiles\work\wcx_ftp.ini
Рабочий каталог: %programfiles%\TC_EX
Горячая клавиша: Нет
Окно: Обычный размер
Путь к иконке: %ProgramFiles%\TC_EX\ICO\commander\tc_red.ico
номер значка: 0
всегда хотелось узнать можно ли с помощью bat файла создать ярлык к файлу,
если можно на примере пож-та:
Файл: %ProgramFiles%\TC_EX\totalcmd.exe
Аргументы: /I=".\Profiles\work\wincmd.ini" /F=".\Profiles\work\wcx_ftp.ini
Рабочий каталог: %programfiles%\TC_EX
Горячая клавиша: Нет
Окно: Обычный размер
Путь к иконке: %ProgramFiles%\TC_EX\ICO\commander\tc_red.ico
номер значка: 0
kalkin5
Встроенными средствами нельзя. Если воспользоваться утилитой nircmd, то можно так:
Код:
@echo off
nircmdc shortcut "%%ProgramFiles%%\TC_EX\totalcmd.exe" ".\" "TotalCommander" "/I=".\Profiles\work\wincmd.ini" /F=".\Profiles\work\wcx_ftp.ini"" "%%ProgramFiles%%\TC_EX\ICO\commander\tc_red.ico" "0"
Встроенными средствами нельзя. Если воспользоваться утилитой nircmd, то можно так:
Код:
@echo off
nircmdc shortcut "%%ProgramFiles%%\TC_EX\totalcmd.exe" ".\" "TotalCommander" "/I=".\Profiles\work\wincmd.ini" /F=".\Profiles\work\wcx_ftp.ini"" "%%ProgramFiles%%\TC_EX\ICO\commander\tc_red.ico" "0"
Можно ли заставить команду echo писать в два файла одновременно? Что-то вроде
Код: echo test >1.txt >2.txt
Код: echo test >1.txt >2.txt
Tipulatoid
Цитата:
Встроенными средствами нельзя. (Ну только если два раза запустить )
Есть утилита mtee, которая перенаправляет входной поток в любое количество файлов:
Код:
echo test | mtee 1.txt 2.txt
Цитата:
Можно ли заставить команду echo писать в два файла одновременно?
Встроенными средствами нельзя. (Ну только если два раза запустить )
Есть утилита mtee, которая перенаправляет входной поток в любое количество файлов:
Код:
echo test | mtee 1.txt 2.txt
Elroir
Спасибо. Еще вопрос:
В реестре у меня по пути HKCU\Software\RIT\The Bat! есть параметр Working Directory со значением %APPDATA%\The Bat!\ Такой вот код
Код: @echo off
setlocal enabledelayedexpansion
set foundbat=no
reg query "HKCU\Software\RIT\The Bat^!" /s > nul && set foundbat=yes
if /i %foundbat%==no (
echo
echo.
echo Не удалось обнаружить почтовый клиент The Bat в системе. Чтобы далее
echo использовать преимущества AutoSend^&Get, вам нужно установить The Bat.
echo Дальнейшая работа AutoSend^&Get на данный момент невозможна.
echo.
goto end
) else (
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "EXE path"') do set mailclient=%%b
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "Working Directory"') do set mailworkdir=%%b
)
echo %mailclient%
echo %mailworkdir%
:end
echo End
Спасибо. Еще вопрос:
В реестре у меня по пути HKCU\Software\RIT\The Bat! есть параметр Working Directory со значением %APPDATA%\The Bat!\ Такой вот код
Код: @echo off
setlocal enabledelayedexpansion
set foundbat=no
reg query "HKCU\Software\RIT\The Bat^!" /s > nul && set foundbat=yes
if /i %foundbat%==no (
echo
echo.
echo Не удалось обнаружить почтовый клиент The Bat в системе. Чтобы далее
echo использовать преимущества AutoSend^&Get, вам нужно установить The Bat.
echo Дальнейшая работа AutoSend^&Get на данный момент невозможна.
echo.
goto end
) else (
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "EXE path"') do set mailclient=%%b
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "Working Directory"') do set mailworkdir=%%b
)
echo %mailclient%
echo %mailworkdir%
:end
echo End
Tipulatoid
Да.... Задачка получилась нетривиальная.
Целый час на нее убил
Вот, что получилось:
Код:
@echo off
setlocal enabledelayedexpansion
call :try
for /f "tokens=*" %%c in ('echo !mailworkdir!') do set "test=%%c"
echo !test!
goto :EOF
:try
setlocal disabledelayedexpansion
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat!" /v "Working Directory"') do set "mailworkdir=%%b"
set "mailworkdir=%mailworkdir:!=^^^^^!%"
endlocal & set "mailworkdir=%mailworkdir%"
Да.... Задачка получилась нетривиальная.
Целый час на нее убил
Вот, что получилось:
Код:
@echo off
setlocal enabledelayedexpansion
call :try
for /f "tokens=*" %%c in ('echo !mailworkdir!') do set "test=%%c"
echo !test!
goto :EOF
:try
setlocal disabledelayedexpansion
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat!" /v "Working Directory"') do set "mailworkdir=%%b"
set "mailworkdir=%mailworkdir:!=^^^^^!%"
endlocal & set "mailworkdir=%mailworkdir%"
Tipulatoid
Код:
@echo off
setlocal enabledelayedexpansion
set foundbat=no
reg query "HKCU\Software\RIT\The Bat^!" /s > nul && set foundbat=yes
if /i %foundbat%==no (
echo
echo.
echo Не удалось обнаружить почтовый клиент The Bat в системе. Чтобы далее
echo использовать преимущества AutoSend^&Get, вам нужно установить The Bat.
echo Дальнейшая работа AutoSend^&Get на данный момент невозможна.
echo.
goto end
) else (
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "EXE path"') do call set mailclient=%%b
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "Working Directory"') do call set mailworkdir=%%b
)
setlocal disabledelayedexpansion
set mailworkdir=%mailworkdir:~0,-1%
set mailworkdir=%mailworkdir%^!\
echo %mailclient%
echo %mailworkdir%
:end
echo End
Код:
@echo off
setlocal enabledelayedexpansion
set foundbat=no
reg query "HKCU\Software\RIT\The Bat^!" /s > nul && set foundbat=yes
if /i %foundbat%==no (
echo
echo.
echo Не удалось обнаружить почтовый клиент The Bat в системе. Чтобы далее
echo использовать преимущества AutoSend^&Get, вам нужно установить The Bat.
echo Дальнейшая работа AutoSend^&Get на данный момент невозможна.
echo.
goto end
) else (
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "EXE path"') do call set mailclient=%%b
for /f "tokens=3*" %%a in ('reg query "HKCU\Software\RIT\The Bat^!" /v "Working Directory"') do call set mailworkdir=%%b
)
setlocal disabledelayedexpansion
set mailworkdir=%mailworkdir:~0,-1%
set mailworkdir=%mailworkdir%^!\
echo %mailclient%
echo %mailworkdir%
:end
echo End
Maza Faka
А если там нестандартный путь?
А если там нестандартный путь?
И еще вопрос Существует ли несложный способ получения короткого пути к файлу? что-то вроде
C:\PROGRA~1\MICROS~2\TEMPLA~1\newsha~1.dot
вместо
C:\Program Files\Microsoft Office\Templates\newshablon.dot
C:\PROGRA~1\MICROS~2\TEMPLA~1\newsha~1.dot
вместо
C:\Program Files\Microsoft Office\Templates\newshablon.dot
Tipulatoid
Dir /x, но это надо разбирать все папки до корня
Dir /x, но это надо разбирать все папки до корня
Tipulatoid
Если такой путь и файл существуют, можно так:
Код:
for /f "tokens=*" %%a in ("C:\Program Files\Microsoft Office\Templates\newshablon.dot") do echo %%~sa
Если такой путь и файл существуют, можно так:
Код:
for /f "tokens=*" %%a in ("C:\Program Files\Microsoft Office\Templates\newshablon.dot") do echo %%~sa
Maza Faka
Спасибо, но путь и вправду может быть нестандартным - так что вариант Elroir предпочтительнее.
KapralBel
И вам спасибо; про dir /x я знал, но именно этот вариант мне показался сложным
Elroir
То, что надо Как-то умудрился не заметить в справке этот модификатор. Thanks
Спасибо, но путь и вправду может быть нестандартным - так что вариант Elroir предпочтительнее.
KapralBel
И вам спасибо; про dir /x я знал, но именно этот вариант мне показался сложным
Elroir
То, что надо Как-то умудрился не заметить в справке этот модификатор. Thanks
Помогите пожалуйста!!
оч нужен бат файл который бы проверял размер файла в интернете.файл постоянно один и тот же например www.ya.ru/1.gif .размер файла нужно сравнивать с 0! если 0 то нужно перезагрузить комп если нет тогда ничего не нужно делать!!!!!!!!!(можно просто смотреть есть файл или нет ! есть- перезагрузить .. нет - ничего не делать)
ПОМОГИТЕ ПОЖАЛУЙСТА ЛЮДИ УМНЫЕ!!!!!
оч нужен бат файл который бы проверял размер файла в интернете.файл постоянно один и тот же например www.ya.ru/1.gif .размер файла нужно сравнивать с 0! если 0 то нужно перезагрузить комп если нет тогда ничего не нужно делать!!!!!!!!!(можно просто смотреть есть файл или нет ! есть- перезагрузить .. нет - ничего не делать)
ПОМОГИТЕ ПОЖАЛУЙСТА ЛЮДИ УМНЫЕ!!!!!
igor_andreev
а как в самом батнике обработать ответ подскажите плз ? я просто вообще ноль в этом (
а как в самом батнике обработать ответ подскажите плз ? я просто вообще ноль в этом (
soulthiefer
wget тут http://users.ugent.be/~bpuype/wget/#download
Код:
wget --spider -o "%temp%\wget.log" http://i.ru-board.com/images/remake1.gif
find /i "200 OK" "%temp%\wget.log" && shutdown -f -r -t 00
wget тут http://users.ugent.be/~bpuype/wget/#download
Код:
wget --spider -o "%temp%\wget.log" http://i.ru-board.com/images/remake1.gif
find /i "200 OK" "%temp%\wget.log" && shutdown -f -r -t 00
igor_andreev
извините за непонятливасть ( просто проблема с ледующем !
мой файл лежит http://soulthiefer.narod.ru/1.txt на этот адрес я заменяю ваш что в батнике .. и лог мне постоянно выдает следующее:
--14:21:04-- http://soulthiefer.narod.ru/1.txt
=> `1.txt'
Resolving soulthiefer.narod.ru... done.
Connecting to soulthiefer.narod.ru[213.180.199.43]:80... connected.
HTTP request sent, awaiting response...
Read error (No such file or directory) in headers.
Retrying.
--14:21:25-- http://soulthiefer.narod.ru/1.txt
(try: 2) => `1.txt'
Connecting to soulthiefer.narod.ru[213.180.199.43]:80... connected.
HTTP request sent, awaiting response...
Read error (No such file or directory) in headers.
Retrying.
и так далее хотя файл есть если помотреть в эксплорере!
извините за непонятливасть ( просто проблема с ледующем !
мой файл лежит http://soulthiefer.narod.ru/1.txt на этот адрес я заменяю ваш что в батнике .. и лог мне постоянно выдает следующее:
--14:21:04-- http://soulthiefer.narod.ru/1.txt
=> `1.txt'
Resolving soulthiefer.narod.ru... done.
Connecting to soulthiefer.narod.ru[213.180.199.43]:80... connected.
HTTP request sent, awaiting response...
Read error (No such file or directory) in headers.
Retrying.
--14:21:25-- http://soulthiefer.narod.ru/1.txt
(try: 2) => `1.txt'
Connecting to soulthiefer.narod.ru[213.180.199.43]:80... connected.
HTTP request sent, awaiting response...
Read error (No such file or directory) in headers.
Retrying.
и так далее хотя файл есть если помотреть в эксплорере!
soulthiefer
1111111111111111111111111111111111111
Странно, что закачался, а потом пропал, т.е больше не закачивается ни через вигет, ни чем.
1111111111111111111111111111111111111
Странно, что закачался, а потом пропал, т.е больше не закачивается ни через вигет, ни чем.
01MDM
Ну так soulthiefer убрал файл
Он же написал - файл либо есть, либо нет.
Ну так soulthiefer убрал файл
Он же написал - файл либо есть, либо нет.
ВСЕ работает !!!!!!!!!! Спасибо igor_andreev огромное оч выручили!!!!!!!!!!!!
soulthiefer
Цитата:
Яб не доверял какие-нить важные задачи бесплатному хостингу, народ.ру - известный тормоз, запросто может быть недоступен или еще что... Я похожим макаром рулю всеми компами на работе, nnCron+wget на всех машинах регулярно проверяют похожий 1.txt(в нем текст батника) и делают, что в нем написано. Удобно с ноутбука управлять, когда сам в командировке за три тыщщи километров от работы. Но мой 1.txt на платном хостинге и всегда доступен. А на народе - вставь в первую строчку пинг например
Код:
ping -n 1 http://soulthiefer.narod.ru && wget и т.д.
Цитата:
мой файл лежит http://soulthiefer.narod.ru/1.txt на этот адрес я заменяю ваш что в батнике .. и лог мне постоянно выдает следующее:
Яб не доверял какие-нить важные задачи бесплатному хостингу, народ.ру - известный тормоз, запросто может быть недоступен или еще что... Я похожим макаром рулю всеми компами на работе, nnCron+wget на всех машинах регулярно проверяют похожий 1.txt(в нем текст батника) и делают, что в нем написано. Удобно с ноутбука управлять, когда сам в командировке за три тыщщи километров от работы. Но мой 1.txt на платном хостинге и всегда доступен. А на народе - вставь в первую строчку пинг например
Код:
ping -n 1 http://soulthiefer.narod.ru && wget и т.д.
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
Предыдущая тема: Problemi s zagruzkoy XP!
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.