Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd) 2

Автор: Garrett
Дата сообщения: 05.02.2008 18:22
XXXXL
Возможно.
Скачай UnixUtils, используй head, wc, tail и >>.
Автор: juvaforza
Дата сообщения: 05.02.2008 18:38
Garrett
Спасибо, ледокол тронулся
А как работать с русской раскладкой?
Автор: XXXXL
Дата сообщения: 05.02.2008 20:50

Цитата:
Скачай UnixUtils, используй head, wc, tail и >>.

UnxUtils у меня есть а вот каким образом можно использовать head, wc, tail и >>. я не знаю
Может кто поможет написать, плз.
Автор: 01MDM
Дата сообщения: 05.02.2008 21:08
XXXXL
Распиши по пунктам. Не совсем понятно что надо делать.

1. Первая строка из 2.txt вырезается и вставляется в 1.txt (куда? в начало файла или в конец , или там кроме этой строки ничего больше нет?)

2. В 2.txt должно при каждом запуске уменьшаться количество строк на одну (На ту что вырезали?)

3. а в 1.txt должна быть всегда только одна последняя вырезана с 2.txt строка. (??)

За один запуск батника порядок действий выполняется только один раз или он работает пока в 2.txt не останется строк?


Код:
@echo off
set /p firstLine=<2.txt
echo %firstLine%>1.txt
for /f "skip=1 tokens=*" %%i in (2.txt) do echo %%i>>2.tmp
move 2.tmp 2.txt
Автор: Garrett
Дата сообщения: 05.02.2008 21:35
juvaforza
Почитай в MSDN про SendKeys. Мне кажется буква будет зависеть от раскладки клавиатуры в момент работы скрипта.
Как вариант, можно попробовать в языковых настройках указать специфичные клавиши для переключения на русский и отдельно на английский язык, а в скрипте сначала послать переключение на нужный язык, а затем текст. Сам не пробовал, правда.

XXXXL
что-то типа
echo off
head -1 2.txt >> 1.txt
gawk "{if (NR!=1) print;}" 2.txt > 3.txt
move 3.txt 2.txt

Автор: XXXXL
Дата сообщения: 05.02.2008 21:44
01MDM, даже мне не придётся отвечать на вопросы, это:

Код: @echo off
set /p firstLine=<2.txt
echo %firstLine%>1.txt
for /f "skip=1 tokens=*" %%i in (2.txt) do echo %%i>>2.tmp
move 2.tmp 2.txt
Автор: sscfree
Дата сообщения: 06.02.2008 06:41
2 ALL
Никто не знает, как программно определить язык обновления, можь какой-нить команднострочный редактор ресурсов, или еще как из M$ обновлений типа WindowsXP-KB834707-x86-rus.exe следует узнать, какие из них английские, а какие нужные нам. Чтобы потом nLite'у закинуть.
Автор: igor_andreev
Дата сообщения: 06.02.2008 13:18
sscfree
filever.exe из любого ресурс кита, она выдает APP ENU или APP RUS
http://support.microsoft.com/kb/913111
Автор: ferapontov
Дата сообщения: 06.02.2008 13:53
Всем привет!
У меня такой вопрос: мне каждый день надо грузить файлы за вчерашний день,которые находятся в папках : \\server\YYYY\MM\YSTD ,где YYYY -текущий год,MM -месяц,YSTD -вчерашнее число.
Я нашел команду for /f "tokens=1,2,3,4* delims=. " %%i in ('date /t') do set TDDAY=%%i&set TDMM=%%j&set TDYY=%%k , при этом переменной TDDAY присваивается значение равное сегодняшнему дню,кто нибудь может подсказать как получить вчерашнюю дату?
Я пробовал завести переменную YSTD ,равную TDDAY-1 ))))) но такая хрень работает только с 11 по 31-е число))

Please help ))))))

Добавлено:
Спасибо!
Автор: gryu
Дата сообщения: 06.02.2008 14:39
Коллеги, вот тут обнаружились на диске 2 справочника по командам ХР.
"Полный перечень команд ХР с описанием, в одном файле HTM" и "Windows Command-Line / Командная строка Windows" 2004 год.
Если это не повтор справочников уже лежащих в шапке, то может кто переложит на постоянный файлообменник и поместит в шапку.
Автор: Accessor
Дата сообщения: 06.02.2008 16:04
gryu
первое в шапке есть, а вот второе (Уильям Станек) я добавил в шапку.
Автор: gryu
Дата сообщения: 06.02.2008 16:17
Accessor
На webfile она пролежит неделю и её потрут.
Нужен обменник типа рапиды с премиум аккаунтом. Чтоб на постоянку разместить.
Автор: Accessor
Дата сообщения: 06.02.2008 16:33
gryu
Разместил на Рапиде. Шапку подправил. Спасибо за книгу.
Автор: juvaforza
Дата сообщения: 06.02.2008 21:36
Garrett
Ок
Автор: mrasvlad
Дата сообщения: 07.02.2008 09:04
Люди помогите:
ситуация такая - есть настроенное dialup соединение в Vista, которое кроме соединения с инетом, еще и настроено на его раздачу другой сети. На рабочий стол выведен ярлык этого соединения.
Необходимо иметь CMD файл, который по его запуску разрывал бы соединение, а потом опять его восстанавливал (смена IP).
Rasdial - нормально работает, но при выполнениии этой задачи с помощью Rasdial отваливается раздача на другую сеть, чего не происходит с ручным запуском ярлыка этого соединения.

Ярлык же нормально такой получается запустить в XP комбинацией Start any.lnk
но в Vista эта комманда вызывает недолгий ступор, после которого ничего не происходит и не пишется никаких сообщений...

Помогите разрулить эту ситуацию
Автор: AndreyG
Дата сообщения: 08.02.2008 16:27
Пожалуйста, помогите бездарю.
Имеется 800 папок с номерами от 001 до 800. Нужно заархивировать каждую папку в свой архив с соотв. именем. Тип архива: rar + 3% инф.для восстановления. После проверки архива - содержимое папки удалить.
Пробовал сам написать - не вышло
Автор: BorlandIMHO
Дата сообщения: 08.02.2008 21:55
AndreyG

Код: @echo off

set INPUTPATH="c:\path to\folders"
set OUTPUTPATH="e:\path to\archives"
for /L %%N in (1,1,9) do rar a -m5 -rr3 -ep1 -- %OUTPUTPATH%\00%%N %INPUTPATH%\00%%NN\*
for /L %%N in (10,1,99) do rar a -m5 -rr3 -ep1 -- %OUTPUTPATH%\0%%N %INPUTPATH%\0%%NN\*
for /L %%N in (100,1,800) do rar a -m5 -rr3 -ep1 -- %OUTPUTPATH%\%%N %INPUTPATH%\%%NN\*
Автор: Ortios
Дата сообщения: 09.02.2008 21:08
AndreyG

Код: @echo off
for /D %%a in (*.*) do ( "c:\program files\winrar\winrar.exe" a -ap%%a -ep1 "%%a" "%%~fa\*.*")
)
Автор: Fraerok
Дата сообщения: 09.02.2008 22:40
Привет! Мы тут недавно сделали батник, который включает/отключает показ картинок в браузере:

Код: for /f "skip=2 tokens=5" %%i in ('reg query "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images"') do set val=%%i
if %val%==yes (REG ADD "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images" /d "no" /f) else (REG ADD "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images" /d "yes" /f)
Автор: Fraerok
Дата сообщения: 11.02.2008 00:17
С API никто не работал? =(
Автор: Smitis
Дата сообщения: 11.02.2008 08:49
Fraerok

Цитата:
С API никто не работал?

Из командных файлов? Хренасе ты загнул
П.С. Для обновления окон разве только какой-нибудь вызов через rundll32 найти. Или утилиту.
Автор: mozers
Дата сообщения: 11.02.2008 09:05
Fraerok
Тебе же вроде как уже посоветовали добавить
Цитата:
rundll32 user32.dll,UpdatePerUserSystemParameters
Не катит что ли?
Автор: Fraerok
Дата сообщения: 11.02.2008 19:22

Цитата:
rundll32 user32.dll,UpdatePerUserSystemParameters

а что с этим делать? просто в батник если вписать, то не помогает.
Автор: Triv
Дата сообщения: 11.02.2008 20:15
Ребят, помогите. Может и офтопик, но все же. Все команды в командой строке выводятся кракозябрами всместо русских букв. И ipconfig, и ping, да все. Никак не найду, где и что подправить... Система ХP SP2, в региональных настройках - русский, в командной строке chcp выдает 866. Куда копать?

Все, спасибо, нашел глюк. Удалил поддержку иероглифов, все заработало.
Автор: Sandy Ann
Дата сообщения: 12.02.2008 11:38
Помогите неучу! Переодически ковыряюсь в играх и если оттучить от диска полностью не выходит приходится пользоваться батниками, а конкретнее командой subst. Был нарисован [more=код]subst D: .
if not exist D:\Game.link goto E
if exist D:\Game.link goto DD

:E
subst E: .
if not exist E:\Game.link goto F
if exist E:\Game.link goto ED

:F
subst F: .
if not exist F:\Game.link goto G
if exist F:\Game.link goto FD

:G
subst G: .
if not exist G:\Game.link goto H
if exist G:\Game.link goto GD

:H
subst H: .
if not exist H:\Game.link goto I
if exist H:\Game.link goto HD

:I
subst I: .
if not exist I:\Game.link goto J
if exist I:\Game.link goto ID

:J
subst J: .
if not exist J:\Game.link goto K
if exist J:\Game.link goto JD

:K
subst K: .
if not exist K:\Game.link goto L
if exist K:\Game.link goto KD

:L
subst L: .
if not exist L:\Game.link goto M
if exist L:\Game.link goto LD

:M
subst M: .
if not exist M:\Game.link goto N
if exist M:\Game.link goto MD

:N
subst N: .
if not exist N:\Game.link goto O
if exist N:\Game.link goto ND


subst O: .
if not exist O:\Game.link goto P
if exist O:\Game.link goto OD


subst P: .
if not exist P:\Game.link goto Q
if exist P:\Game.link goto PD

:Q
subst Q: .
if not exist Q:\Game.link goto R
if exist Q:\Game.link goto QD

:R
subst R: .
if not exist R:\Game.link goto S
if exist R:\Game.link goto RD

:S
subst S: .
if not exist S:\Game.link goto T
if exist S:\Game.link goto SD

:T
subst T: .
if not exist T:\Game.link goto U
if exist T:\Game.link goto TD

:U
subst U: .
if not exist U:\Game.link goto V
if exist U:\Game.link goto UD

:V
subst V: .
if not exist V:\Game.link goto W
if exist V:\Game.link goto VD

:W
subst W: .
if not exist W:\Game.link goto X
if exist W:\Game.link goto WD

:X
subst X: .
if not exist X:\Game.link goto Y
if exist X:\Game.link goto XD

:Y
subst Y: .
if not exist Y:\Game.link goto Z
if exist Y:\Game.link goto YD

:Z
subst Z: .
if not exist Z:\Game.link goto ERROR
if exist Z:\Game.link goto ZD

D
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst D: /d
exit    

:ED
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst E: /d
exit

:FD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst F: /d
exit

:GD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst G: /d
exit

:HD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst H: /d
exit    

:ID
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst I: /d
exit

:JD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst J: /d
exit

:KD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst K: /d
exit

:LD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst L: /d
exit

:MD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst M: /d
exit    

:ND
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst N: /d
exit

D
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst O: /d
exit

D
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst P: /d
exit

:QD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst Q: /d
exit    

:RD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst R: /d
exit

:SD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst S: /d
exit

:TD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst T: /d
exit

:UD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst U: /d
exit

:VD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst V: /d
exit    

:WD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst W: /d
exit

:XD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst X: /d
exit

:YD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst Y: /d
exit

:ZD
@echo off
cls
echo ‘в ав ЁЈал
Game.exe
subst Z: /d
exit    

:ERROR
subst D: /d
subst E: /d
subst F: /d
subst G: /d
subst H: /d
subst I: /d
subst J: /d
subst K: /d
subst L: /d
subst M: /d
subst N: /d
subst O: /d
subst P: /d
subst Q: /d
subst R: /d
subst S: /d
subst T: /d
subst U: /d
subst V: /d
subst W: /d
subst X: /d
subst Y: /d
subst Z: /d
@echo off
cls
echo ЌҐў®§¬®¦-® ᮧ¤ вм ўЁавг «м-л© ¤ЁбЄ
echo ‚ᥠЎгЄўл ¤ЁбЄ § -пвл
echo €бЇа ў«п© бЁвг жЁо!!!
pause
exit
--------------------------------
Где Game.link метка, по которой определяется, что команда subst успешно выполнена.
Game.exe сама игра[/more], избавляющий конечного юзера от проблем и без проблем пашущий в Хрюшке. Но в системах 9х поперли проблемы:
*При попадании на съемный диск выводится запрос "стоп\повтор\сброс\". Как игнорировать сей запрос?
*При запуске игры код выполняется дальше, а не ждет, пока игра завершится.
Подскажите, как подправить батник, чтоб он работал в 9х\МЕ так же, как и в ХР.
Автор: AndreyG
Дата сообщения: 14.02.2008 14:06
Всем спасибо. В выражении
@echo off
for /D %%a in (*.*) do ( "c:\program files\winrar\winrar.exe" a -ap%%a -ep1 "%%a" "%%~fa\*.*")
)
всё работает даже с лишней скобкой. %% - это мои папочки?
Андрей
Автор: Fraerok
Дата сообщения: 15.02.2008 11:31

Цитата:
rundll32 user32.dll,UpdatePerUserSystemParameters

как с батником связать?
Автор: 01MDM
Дата сообщения: 15.02.2008 11:41
Fraerok
Просто допишешь команду в батник и все, но я сомневаюсь, что это поможет. Тоже как-то пытался применить изменения в HKCU на лету. Получается только через logoff.
Автор: gryu
Дата сообщения: 15.02.2008 16:12
Коллеги. Понимаю, что это всё очень просто, но что то никак не соображу.
Задача.
Батник переписывает с сетевого диска на локальный файлы и запускает локальную программу.
Файлы, это файлы обновлений.
Сейчас сделано в тупую
copy \\**\***\Shared\*.* C:\***\Shared\ /y
C:\***\***.exe
При этом каждый раз копируются все файлы.
Хотелось бы, что бы копирывались только изменённые и новые.
Как это сделать?
И ещё хотелось бы, что бы в случае если всё отработало нормально (файлы переписались и прога запустилась), то досовское окошко само закрывалось (а то оно так и висит).
Но при этом в случае ошибки, оно не закрывалось, а оставалось. Плюс ошибка писалась бы в файл. типа >>error.txt
Автор: 01MDM
Дата сообщения: 15.02.2008 18:52
gryu

Код:
@echo off
xcopy "\\**\***\Shared\*.*" "C:\***\Shared\" /q /d /y
start "" "C:\***\***.exe"

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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