%%a
) получить составляющие пути используйте модификаторы:%%~fa - полный путь
%%~dpa - только диск и путь без имени файла
%%~nxa - имя файла и расширение
%%~dpa
от файла, затем отбросить завершающий слеш с помощью обрезания строки в set
(точно не помню, может его и нет, нужно проверять), затем от полученного результата взять %%~nxb
. Как видите переменная цикла уже другая, потому что модификаторы не применяются к обычным переменным, только к переменным цикла и к параметра батника (или процедуры). Т.е. результат %%~dpa
нужно загнать в for /f
, чтоб получить следующую переменную цикла.for
) присваивать обычным переменным значение и затем тут же их читать нужно выставить setlocal enabledelayedexpansion
и при обращении к переменной использовать символы восклицательного знака, а не знак процента. Это называется отложенное расширение переменных. Без этого присваивание и использование переменной внутри скобок не работает (точнее работает, но не так как вы ожидаете).for /?
set /?
setlocal /?
if /?
find /?
findstr /?
for /?
я могу ждать в recv хоть сколько, если это в принципе допустимо сокетами.
Т.е. при испоьзовании блокирующих сокетов можно вообще без poll/select обойтись и сразу вызывать recv и в ней сидеть и ждать
Просто теперь любопытно почему такой метод срабатывает если я буду работать с delay.h из стандартной библиотеки, при абсолютно таком же коде
full_name="G:/avidemux_2.7.4/avidemux_core/../avidemux_core/ffmpeg_package/patches//libavformat_isom.c.patch"
abs_dir="`dirname \"${full_name}\"`" # relative
abs_dir="`( cd \"${abs_dir}\" && pwd )`" # absolutized and normalized
Для gcc я обычно включаю -Wall -Wextra, обязательно -std=XXX чтоб компилятор знал какой стандарт вы пытаетесь использовать, можно еще -pedantic