Как получить доступ к связанным файлам с помощью пакета exe

Итак, вот. Я устал настраивать профили беспроводной сети на компьютерах и вместо этого хотел бы просто импортировать эти настройки через командную строку. После некоторых исследований я решил, что буду экспортировать свои уже созданные профили в netsh, а затем создам пакетный файл для запуска команд для создания профилей для пользователя. Тогда я подумал, что оберну все это как exe для удобства доступа для других. У меня есть это для файла bat:

@echo off
netsh wlan add profile filename="Wi-Fi-linksys3.xml"
netsh wlan add profile filename="Wi-Fi-linksys2.xml"
netsh wlan add profile filename="Wi-Fi-linksys1.xml"

Это не позволяет импортировать xml-файлы, находящиеся в той же папке. Он не указывает правильный путь к папке для импорта файлов, вместо этого сообщает:

"The system cannot find the file supported"

Или, если я попробую что-то вроде:

@echo off
netsh wlan add profile filename="%TEMP%\Wi-Fi-linksys3.xml"
netsh wlan add profile filename="%TEMP%\Wi-Fi-linksys2.xml"
netsh wlan add profile filename="%TEMP%\Wi-Fi-linksys1.xml"

Он делает то же самое.

Я думаю, что по какой-то причине netsh не звонит в правильное место. Если я вставлю что-то вроде «c: [имя файла]», он будет нормально импортирован, но я не могу заставить что-то подобное работать после того, как оно будет упаковано в exe.

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


person Jasper    schedule 20.09.2013    source источник
comment
Пожалуйста, объясните подробно, что вы имеете в виду, когда я бы обернул все это как exe ... или внутри exe (в комплекте bat + xml). Не существует такой вещи, как exebatch.   -  person Aacini    schedule 21.09.2013
comment
@Aacini - я полагаю, что ОП имеет в виду использование iexpress.exe для компиляции его файлов bat и xml в один исполняемый файл.   -  person mason81    schedule 23.09.2013


Ответы (2)


Предполагая, что вы используете iexpress.exe для объединения файлов bat и xml, exe должен извлечь их во временное место (где-то в %appdata%, скорее всего, в локальной временной папке), но, поскольку вы, вероятно, не знаете, каков фактический путь, попробуйте используя %~dp0 вместо пути, и это должно работать.

@echo off
netsh wlan add profile %~dp0Wi-Fi-linksys1.xml
netsh wlan add profile %~dp0Wi-Fi-linksys2.xml
netsh wlan add profile %~dp0Wi-Fi-linksys3.xml

При выполнении процесса iexpress обязательно установите флажок, чтобы сохранить длинные имена файлов или сохранить файлы xml с более короткими именами, такими как conf1.xml и т. д. (и отразить изменения в вашей летучей мыши).

update вот откуда я взял %dp0, если вы хотите узнать немного больше: https://serverfault.com/a/255294/144813

person mason81    schedule 23.09.2013
comment
Это сработало для меня сказочно. Как только я изменил его на %~dp0 и использовал длинные имена файлов... все заработало просто отлично! Спасибо за помощь!! - person Jasper; 23.09.2013
comment
Пожалуйста. Я рад, что смог помочь. Кстати, добро пожаловать в Stack Overflow. - person mason81; 23.09.2013

Здесь работает:

netsh wlan add profile Wi-Fi-linksys3.xml
person Dany Bee    schedule 20.09.2013
comment
Он работает внутри exe (в комплекте bat + xml) или только из командной строки? - person mason81; 21.09.2013
comment
Хорошо знать. Таким образом, проблема была не обязательно в том, что команда не нашла файл по пути, а в том, что файлы были переименованы, потому что он не установил флажок, чтобы сохранить длинные имена файлов. Справедливо. - person mason81; 01.10.2013