Я очень новичок в программировании, но смог создать командный файл, в котором использовались следующие строки, чтобы открыть средство выбора папки и сохранить как переменные (srcfolder
и destfolder
). Моя проблема с этой настройкой заключается в том, что мы не получаем типичное окно выбора файла, в которое мы можем вставить значение для папки, с которой мы хотим начать. Наши пользователи должны щелкнуть структуру папок на 6 или 7 уровней, чтобы выбрать папки, что в следующем диалоге делает медленный процесс
![FolderChooser](https://i.stack.imgur.com/t2z9j.png)
set "psCommand="(new-object -COM 'Shell.Application')^
.BrowseForFolder(0,'Please choose the source folder.',0,0).self.path""
for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "srcfolder=%%I"
set "psCommand="(new-object -COM 'Shell.Application')^
.BrowseForFolder(0,'Please choose the destination folder.',0,0).self.path""
for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "destfolder=%%I"
Мы хотели бы иметь возможность использовать диалог, аналогичный File - Open во многих приложениях Microsoft, но только выберите папку, а затем сохраните ее как две переменные, которые будут доступны для командного файла .
Просто дополнительный контекст : у нас есть команда после этого, которая использует переменные src
и dest
для преобразования файлов, поэтому convert.exe "srcfolder destfolder"
выбирает все файлы в srcfolder
папку и удаляет правильно отформатированные файлы в папку destfolder
. Это преобразование отлично работает с пакетным файлом, просто нужна помощь с диалогом выбора папки, пожалуйста:)
Еще одно замечание: пользователи, которым необходимо запустить этот сценарий, не являются администраторами на компьютерах. Я нашел здесь пару скриптов, которые работают, но для запуска требуется авторизация администратора. Таким образом, решение не может требовать повышенных привилегий.