Странно работает _wspawnvpe - не находит что выполнять
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.01.18 04:19
Оценка:
Здравствуйте!

Вызываю _wspawnvpe (не забываю передать переменные окружения) для mklink /J...
Получаю ошибку: No such file or directory

Делаю my-mklink.bat файл:
[code]
mklink %1 %2 %3
set
[code]

вызываю также: my-mklink.bat /J lnk lnk_target
Работает — создает линк, выводит переменные окружения, там и PATH присутствует.

Есть подозрение, что mklink — это встроенная в CMD команда. Попробовал запускать из консоли ручками MKLINK.EXE — запускается. Значит ли это, что это таки внешняя команда? Или просто CMD понимает и такой вариант вызова встроенной команды?


Как быть? Запускать через system? Но там неудобно — нельзя отдельно аргументы задать, только ком строку целиком, нет возможности передать переменные окружения
Маньяк Робокряк колесит по городу
Re: Странно работает _wspawnvpe - не находит что выполнять
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 18.01.18 10:43
Оценка:
Здравствуйте, Marty, Вы писали:

M>Есть подозрение, что mklink — это встроенная в CMD команда. Попробовал запускать из консоли ручками MKLINK.EXE — запускается. Значит ли это, что это таки внешняя команда? Или просто CMD понимает и такой вариант вызова встроенной команды?


Занятно. mklink.exe запускается, но файла такого на диске нигде нет…
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: Странно работает _wspawnvpe - не находит что выполнять
От: Evgeniy Skvortsov Россия  
Дата: 18.01.18 11:55
Оценка:
Здравствуйте, Marty, Вы писали:

M> Есть подозрение, что mklink — это встроенная в CMD команда


Так и есть.

M> Как быть? Запускать через system? Но там неудобно — нельзя отдельно аргументы задать, только ком строку целиком, нет возможности передать переменные окружения


Запускать "cmd.exe /C mklink [параметры]"

Ключ /С — выполняет указанную команду


Ну или напрямую звать CreateSymbolicLink
Отредактировано 18.01.2018 12:18 Evgeniy Skvortsov . Предыдущая версия . Еще …
Отредактировано 18.01.2018 11:57 Evgeniy Skvortsov . Предыдущая версия .
Re[2]: Странно работает _wspawnvpe - не находит что выполнять
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.01.18 16:42
Оценка:
Здравствуйте, CaptainFlint, Вы писали:

M>>Есть подозрение, что mklink — это встроенная в CMD команда. Попробовал запускать из консоли ручками MKLINK.EXE — запускается. Значит ли это, что это таки внешняя команда? Или просто CMD понимает и такой вариант вызова встроенной команды?


CF>Занятно. mklink.exe запускается, но файла такого на диске нигде нет…


Ага, dir.exe, copy.exe — тоже запускаются
Маньяк Робокряк колесит по городу
Re[2]: Странно работает _wspawnvpe - не находит что выполнять
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.01.18 16:47
Оценка:
Здравствуйте, Evgeniy Skvortsov, Вы писали:

M>> Есть подозрение, что mklink — это встроенная в CMD команда


ES>Так и есть.


Интересно, почему mklink.exe тоже работает. На более ранних системах такого поведения вроде не было


M>> Как быть? Запускать через system? Но там неудобно — нельзя отдельно аргументы задать, только ком строку целиком, нет возможности передать переменные окружения


ES>Запускать "cmd.exe /C mklink [параметры]"


ES>Ключ /С — выполняет указанную команду


Забил, сделал таки через system


ES>Ну или напрямую звать CreateSymbolicLink


Не работает, прав не хватает. Я решил использовать junction, даже нарыл сорцы от Руссиновича, но там ужасный сишный код, причесывать мне который стало лень, я решил по простому через mklink /J
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.