Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Операционные системы общие вопросы
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2010, 10:41   #171
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Хотя, номера строк тоже можно было бы батником удалять. Наверное, так было бы быстрее, чем в моем варианте.
Arigato вне форума Ответить с цитированием
Старый 21.10.2010, 14:57   #172
dinos
Новичок
Джуниор
 
Регистрация: 19.10.2010
Сообщений: 1
По умолчанию

Здравствуйте! Передо мной встала проблема: bat-ники или изучать другую программу с теми же возможностями!
Дело в том что bat является стандартной программой, знаю почти все команды..
Но не могу догадаться как решать задачи с помощью bat-ника!
"X+RK=I" "76456 перевести в 2ичную"
а главное! возможно-ли: вводить числа не при создании а в процессе исполнения команд, и возможно ли сохранять ответ в .txt файле?
Подскажите как это делать!
dinos вне форума Ответить с цитированием
Старый 08.11.2010, 15:56   #173
user100
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 11
По умолчанию

Требуется написать батник слияния файлов.
BAT-файл запускается с параметрами – именами файлов (1.txt, 2.txt). В случае, если имена файлов имеют одинаковые расширения автоматически создается новый файл, имя которого представляет собой сумму имен файлов-параметров, а содержимое – слияние содержимого этих файлов. В случае, если расширения отличаются – выдается сообщение об ошибке и программа завершается.

Например, в некой папке лежат файлы p1.txt и p2.txt. Пользователь вызывает bat-файл: merge.bat p1.txt p2.txt, после этого создается файл p1p2.txt, в который поочередно записывается содержимое файлов p1.txt и p2.txt.

Нужно для института.
Заранее спасибо за помощь: )
user100 вне форума Ответить с цитированием
Старый 10.11.2010, 03:22   #174
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

user100
Код:
@echo off

if (%1) == () (
	echo Error: First Argument is not setted!
	goto :EOF
) else if (%2) == () (
	echo Error: Second Argument is not setted!
	goto :EOF
) else (
	set FileName1=%1
	set FileName2=%2
)
call :expFileName %FileName1% %FileName2%

goto :EOF

:expFileName
set "expFileName1=%~x1"
set "expFileName2=%~x2"
set "nameFileName1=%~n1"
set "nameFileName2=%~n2"

if "%expFileName1%"=="%expFileName2%" (
	if exist %nameFileName1%%nameFileName2%%expFileName1% del /q %nameFileName1%%nameFileName2%%expFileName1%
	type %1 >>%nameFileName1%%nameFileName2%%expFileName1% && (echo. && echo --- End of file 1 ---) >>%nameFileName1%%nameFileName2%%expFileName1% && type %2 >> %nameFileName1%%nameFileName2%%expFileName1%
	echo Success: File %nameFileName1%%nameFileName2%%expFileName1% was successfully created!
) else (
	echo Error: Expansions are not equal!
)
конечно можно вместо
Код:
if exist %nameFileName1%%nameFileName2%%expFileName1% del /q %nameFileName1%%nameFileName2%%expFileName1%
	type %1 >>%nameFileName1%%nameFileName2%%expFileName1% && (echo. && echo --- End of file 1 ---) >>%nameFileName1%%nameFileName2%%expFileName1% && type %2 >> %nameFileName1%%nameFileName2%%expFileName1%
написать:
copy /y %1+%2 %nameFileName1%%nameFileName2%%expFileName1%>nul
Vistar вне форума Ответить с цитированием
Старый 10.11.2010, 14:44   #175
insaider
 
Регистрация: 16.07.2010
Сообщений: 6
Сообщение Shutdown log

Привет!
Нужно повесить батник в задания. Он должен выключать компьютер и записывать в файл (дату - время - имя компьютера). И что бы работало под группой "Пользователи".

Вот что я написал:
Код:
@echo %DATE% %TIME% - %COMPUTERNAME% >>R:\..(путь)..\off_log.txt
shutdown -s -f -t 10
Почему то не получается =(
Спасибо...
insaider вне форума Ответить с цитированием
Старый 10.11.2010, 15:16   #176
sL4yer
Пользователь
 
Регистрация: 10.11.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от insaider Посмотреть сообщение
Почему то не получается =(
что конкретно не получается? Если можно скрин или ошибку в студию

P. S. Возможно у вас просто отсутствует программа "shutdown.exe". Проверьте её наличие:
Код:
dir /b %WINDIR%\system32\ | find "shutdown"
или посмотрите "вручную"

Последний раз редактировалось sL4yer; 10.11.2010 в 15:31.
sL4yer вне форума Ответить с цитированием
Старый 24.11.2010, 11:13   #177
user100
Пользователь
 
Регистрация: 08.11.2010
Сообщений: 11
По умолчанию

препод дотошный попался..
объясните что происходит в каждой строчке начиная с
Код:
:expFileName
set "expFileName1=%~x1"
set "expFileName2=%~x2"
set "nameFileName1=%~n1"
set "nameFileName2=%~n2"

if "%expFileName1%"=="%expFileName2%" (
	if exist %nameFileName1%%nameFileName2%%expFileName1% del /q %nameFileName1%%nameFileName2%%expFileName1%
	type %1 >>%nameFileName1%%nameFileName2%%expFileName1% && (echo. && echo --- End of file 1 ---) >>%nameFileName1%%nameFileName2%%expFileName1% && type %2 >> %nameFileName1%%nameFileName2%%expFileName1%
	echo Success: File %nameFileName1%%nameFileName2%%expFileName1% was successfully created!
) else (
	echo Error: Expansions are not equal!
)
user100 вне форума Ответить с цитированием
Старый 24.11.2010, 16:10   #178
strangegirl
Пользователь
 
Регистрация: 04.11.2010
Сообщений: 19
По умолчанию Изменить бат файл

У меня есть бат файл,запускающий игрушку под цифрой,которую укажет пользователь) но этот бат файл запускается в виндовс на компьютере, но в MS DOS, где мне он и нужен, выдаёт ошибку syntax error после вывода списка игр...помогите исправить,пожалуйста)

@echo off
:start
echo 1. Mario
echo 2. Karty (pas`jans)
echo 3. 10Rogue
echo 4. Exit
set /p A=Vyberite nomer igry iz spiska:
if %A%==1 (start mario.exe)
if %A%==2 (start mshearts.exe)
if %A%==3 (10rogue.exe)
if %A%==4 (goto exit)
goto start
:exit
strangegirl вне форума Ответить с цитированием
Старый 24.11.2010, 18:48   #179
sL4yer
Пользователь
 
Регистрация: 10.11.2010
Сообщений: 24
По умолчанию

user100

Цитата:
Сообщение от user100 Посмотреть сообщение
препод дотошный попался..
объясните что происходит в каждой строчке начиная с
Код:
:expFileName
set "expFileName1=%~x1"
set "expFileName2=%~x2"
set "nameFileName1=%~n1"
set "nameFileName2=%~n2"
Код:
set FileName1=%1
set FileName2=%2
Присваиваем переменным значение аргументов %1 и %2
Код:
call :expFileName %FileName1% %FileName2%
Вызываем функцию expFileName и передаем параметры в качестве переменных FileName1 FileName2, то есть значение аргументов %1 и %2.
Код:
set "expFileName1=%~x1"
set "expFileName2=%~x2"
set "nameFileName1=%~n1"
set "nameFileName2=%~n2"
Пишем в командной строке call /?, читаем внимательно, находим:
~nI - переменная I раскрывается в имя файла
~xI - переменная I раскрывается в расширение файла

где І - любая переменная, в нашем случае это %1 и %2, потому %~x1 и %~x2

Пример:
В Ваш bat-файл мы передаем в качестве аргументов %1 и %2 - File1.lol и File2.txt, тогда
expFileName1 имеет значение lol
expFileName2 имеет значение txt
nameFileName1 имеет значение File1
nameFileName2 имеет значение File2

Надеюсь, тут всё понятно. Далее, думаю, Вам не составит труда разобраться в программе. Единственное, что может вызвать усложнения это символ "&&"
Код:
type %1 >>%nameFileName1%%nameFileName2%%expFileName1% && (echo. && echo --- End of file 1 ---)
Этот символ обозначает, что если первая команда выполнилась без ошибок, выполнять следующую.

type %1 >>%nameFileName1%%nameFileName2%%ex pFileName1%
type %1 - выводим на экран содержимое File1.lol
>> - перенаправляем вывод с экрана в файл с название File1File2.lol
&& - если всё успешно выполнилось, то есть содержимое файла File1.lol записалось в файл File1File2.lol, то выполняется команда (echo. && echo --- End of file 1 ---)
echo. - "пустая" строка или "конец" строки.
Ну и так далее, всё по-шаблону... Единственное, что нужно было - команды echo объединить в скобки ().

Последний раз редактировалось sL4yer; 24.11.2010 в 18:53.
sL4yer вне форума Ответить с цитированием
Старый 24.11.2010, 18:57   #180
sL4yer
Пользователь
 
Регистрация: 10.11.2010
Сообщений: 24
По умолчанию

strangegirl

Цитата:
Сообщение от strangegirl Посмотреть сообщение
@echo off
:start
echo 1. Mario
echo 2. Karty (pas`jans)
echo 3. 10Rogue
echo 4. Exit
set /p A=Vyberite nomer igry iz spiska:
if %A%==1 (start mario.exe)
if %A%==2 (start mshearts.exe)
if %A%==3 (10rogue.exe)
if %A%==4 (goto exit)
goto start
:exit
попробуйте взять в кавычки.
Код:
@echo off
:start
echo 1. Mario
echo 2. Karty (pas`jans)
echo 3. 10Rogue
echo 4. Exit
set /p "A=Vyberite nomer igry iz spiska: "
if %A%==1 (start mario.exe)
if %A%==2 (start mshearts.exe)
if %A%==3 (10rogue.exe)
if %A%==4 (goto exit)
goto start
:exit
sL4yer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для сохранения листов в отдельных файлах Neo007 Microsoft Office Excel 2 22.10.2008 18:16
Русская раскладка в bat-файлах snake-as Microsoft Office Excel 3 16.10.2008 17:59
Сортировка в файлах и записях. Паскаль Elizabeth Black Помощь студентам 2 27.05.2008 21:51
Помогите с вопросами о файлах Дима82 Помощь студентам 5 26.05.2008 19:49
Помогите, пожалуйста, решить задачу по файлах sheva_ser Паскаль, Turbo Pascal, PascalABC.NET 1 27.03.2008 19:36