2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 11:12 


03/06/12
2864
Dmitriy40 в сообщении #1208912 писал(а):
Не понимаю что тут непонятного

вот тут
Dmitriy40 в сообщении #1208644 писал(а):
(*.tex)

нет параметра f.
arseniiv в сообщении #1208830 писал(а):
а то узнать текущий каталог было нельзя. :-) )

А я и так не знал, наткнулся случайно.
Dmitriy40 в сообщении #1208912 писал(а):
Это абсолютно не странно, cmd.exe запускается с текущим каталогом windows\system32

А почему при нескольких первых запусках батника папки создавались в одном каталоге с батником? Содержание батника я уже писал:
Sinoid в сообщении #1208799 писал(а):
Батник был следующего содержания:
Код:

echo off
for /l %%i in (1,1,100) do mkdir "dir %%i"

.
А запускал я его кнопкой "Открыть" из папки с батником.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 11:43 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Dmitriy40 в сообщении #1208912 писал(а):
Это абсолютно не странно, cmd.exe запускается с текущим каталогом windows\system32 - если самому не указать другой.

Бред какой. Где запустите, там и запускается. Зависит от способа запуска, n'est pas?
(Я всегда запускаю из Commander-а, например. Кто-то может из другого cmd.)

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 12:46 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
В любой UNIX shell, и, кажется, в Windows, под "директорией" если она не выписана явно, понимается текущая директория, которая обозначается ".", в то время как домашняя директория обозначается "~".

Но в любом случае, нелепые пожелания ТС привели к тому, что эта дискуссия, не имеющая практически никакого отношения к TeX, попала сюда.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 13:47 


03/06/12
2864
А когда пишу в командную строку, запущенную из папки, папки создаются где и ожидается. Я сейчас в окончание батника добавил команду pause, так после открытия батника вижу такую картину:
Код:
C:\Windows\system32>echo off
Для продолжения нажмите любую клавишу . . .

Получается, все верно и нужно в батнике рабочей папкой указать папку, в которой находится батник. Только как это сделать? Попробовал в батник написать
Код:
cd..

не помогает.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 14:41 
Заслуженный участник


27/04/09
28128
Dmitriy40 в сообщении #1208912 писал(а):
Это абсолютно не странно, cmd.exe запускается с текущим каталогом windows\system32 - если самому не указать другой.
Ну вот я жму Win-R, пишу cmd — и получаю в промпте C:\Users\123.

-- Ср апр 12, 2017 16:56:37 --

Munin в сообщении #1208944 писал(а):
Где запустите, там и запускается.
Хм, вот да, действительно, чем cmd хуже других программ — она тоже должна наследовать текущий каталог. Другое дело, что она могла бы не отождествлять текущий каталог своего процесса с текущим каталогом, используемым для команд. Но, видимо, этого не делает.

Sinoid
Если вы напишете просто .., вы перейдёте вверх из текущего каталога, который пока что %SystemRoot%, и попадёте в %WinDir% (в вашем случае C:\Windows). Можно использовать то, что аргументом %0 передаётся путь к самому батнику, и использовать
Lenchik в сообщении #1208918 писал(а):
Потому приходилось писать в некоторых скриптах, рассчитанных на "набрасывание" файла на них перетаскиванием, в самом начале
Используется синтаксис Bash
SET source_path=%~dp1
cd /d "%source_path%"
 
заменив здесь 1 на 0. Можно также (я проверил сейчас) сразу написать cd /d "%~dp0" без введения переменной.

-- Ср апр 12, 2017 16:59:41 --

Кстати, по поводу вот таких штук с аргументами, которые лично мне мало где удавалось найти, есть неплохой справочник
https://ss64.com/nt/syntax.html
и вообще
https://ss64.com/nt/

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 16:41 
Заслуженный участник


20/08/14
11776
Россия, Москва
Munin в сообщении #1208944 писал(а):
Бред какой. Где запустите, там и запускается. Зависит от способа запуска, n'est pas?
Не бред и разумеется зависит. Я говорил про такой запуск: Win+R - cmd.exe - Enter. Или из меню ПУСК - Все программы - Стандартные - Командная строка. (Правда в windows\system32 запускается лишь для старых ОС, типа WinXP и старее, для более новых - из папки юзера. Этого я не учёл по привычке.) Т.е. когда явно не указана текущая папка (например в свойствах ярлыка) или из которой запускаем (при запуске из всяких командеров или проводника).

Sinoid в сообщении #1208933 писал(а):
вот тут
Dmitriy40 в сообщении #1208644 писал(а):
(*.tex)
нет параметра f.
Он тут и не нужен, тут указано в каких пределах он должен изменяться при запуске указанной далее программы. Ведь в Вашем выражении for /l %%i in (1,1,100) do mkdir "dir %%i" в скобках тоже нет параметра %%i - это полностью аналогично.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 16:59 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Dmitriy40 в сообщении #1209028 писал(а):
Я говорил про такой запуск: Win+R

Ну а вокруг все телепаты, и должны знать, что вы про такой. Я про него тут впервые в теме узнал.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 18:35 
Заслуженный участник


27/04/09
28128
В конечном-то итоге всё тайное стало явным.

 Профиль  
                  
 
 Posted automatically
Сообщение12.04.2017, 18:54 
Админ форума
Аватара пользователя


19/03/10
8952
 i  Тема перемещена из форума «TeXнические обсуждения» в форум «Software»

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 20:35 


03/06/12
2864
Dmitriy40 в сообщении #1209028 писал(а):
Он тут и не нужен, тут указано в каких пределах он должен изменяться при запуске указанной далее программы

Это получается, что список (область :?: ) значений переменной $f$, как бы это сказать, составляется из названий файлов .tex, а подстановочный знак * говорит, что при этом используются все файлы .tex?
arseniiv в сообщении #1209001 писал(а):
cd /d "%~dp0"

Да, спасибо, но я уже нашел вот здесь. Короче, я почти написал. Вот код:
Код:
echo off
cd /d %0\..
for %%f in (*.tex) do pdflatex %%f
asy *.asy
for %%f in (*-{0}*.tex) do pdflatex %%f
pause

по идее последняя строка должна компилировать pdflatex'ом .tex-файлы, в названии которых нет знака - , но этого не происходит. До этой же строки все идет как надо. Сейчас в Интернете покапаюсь, может, чего найду.
arseniiv в сообщении #1209001 писал(а):
https://ss64.com/nt/syntax.html

и вообще
https://ss64.com/nt/


да, ресурс классный, потом скачаю, а то сайт сегодня есть, завтра нет. Еще б язык знать.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение13.04.2017, 20:45 


03/06/12
2864
Как-то странно получается. Вот у меня в папке 2 файла: kino.tex и ugo-zapad.tex. Когда выполняю такой батник:
Код:
echo off
cd /d %0\..
for %%f in (*.tex) do if not %%f==kino.tex pdflatex %%f
pause

как и ожидается, компилируется один файл ugo-zapad.tex. Но когда вместо этого батника пишу батник
Код:
echo off
cd /d %0\..
for %%f in (*.tex) do if not %%f==*a*.tex pdflatex %%f
pause

компилируются оба файла. Это почему так?

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение13.04.2017, 21:11 
Заслуженный участник


27/04/09
28128
Кажется, сравнение на «равенство» строке с wildcard’ами работать и не должно.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение13.04.2017, 23:22 
Заслуженный участник


20/08/14
11776
Россия, Москва
Точнее оно как раз работает, но без учёта макроподстановок, т.е. просто сравнивает две обычные строки, не преобразуя символы "*" ни во что другое.
Вообще задача обработать ,батником файлы кроме заданных - нетривиальная. И вероятно проще всего её решить обходным путём: переименовать файл-исключение, обработать все нужные, переименовать файл-исключение обратно, как-то так:
Код:
ren *a*.tex *.do_not
for %%f in (*.tex) do pdflatex %%f
ren *.do_not *.tex

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение13.04.2017, 23:42 


03/06/12
2864
Dmitriy40 в сообщении #1209305 писал(а):
И вероятно проще всего её решить обходным путём: переименовать файл-исключение, обработать все нужные, переименовать файл-исключение обратно, как-то так:

Файлы- исключения нужны для обработки единственного файла-неисключения, я их вообще пробовал удалять, удаление-то в батник записать удалось, только графика в нужном файле исчезла.

-- 14.04.2017, 00:46 --

Dmitriy40 в сообщении #1209305 писал(а):
Вообще задача обработать ,батником файлы кроме заданных - нетривиальная

Кто бы мог подумать, а кажется целый компьютер и такой пустяк.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение14.04.2017, 01:33 
Заслуженный участник


20/08/14
11776
Россия, Москва
Задача нетривиальная для данного набора средств (бат файл и cmd.exe), с другим набором (например другими обработчиками скриптов, не встроенный в Windows cmd.exe) она вполне тривиальна. Так что Вашу иронию надо адресовать к выбору средств решения задачи.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group