Есть ли способ записать путь к файлу и имя в одной пакетной функции? - PullRequest
0 голосов
/ 19 июня 2019

Я создаю пакетный скрипт для выполнения robocopy функций.В настоящее время мне приходится вызывать два различных варианта PowerShell, один для имени файла, а затем для исходной папки, могу ли я объединить это?

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

echo Select your file
set pwshcmd=powershell -NoProfile -Command "&{[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null;$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog; $OpenFileDialog.ShowDialog()|Out-Null; $OpenFileDialog.SafeFileName}"

for /f "delims=" %%I in ('%pwshcmd%') do (
    set "FileName=%%I"
)

echo %FileName%

pause

Я хочу, чтобы пользователь сделал один выбор с помощью PowerShell, и он установил две переменные %FileName% и %FilePath%, так как это будет использоваться в скрипте robocopy.

1 Ответ

0 голосов
/ 20 июня 2019

Я ценю мнение каждого по этому вопросу. Я решил это вскоре после публикации, однако столкнулся с тем, что robocopy хочет путь к каталогу без окончания "\". Метод, использованный для сбора обоих путей, был:

for /f "delims=" %%I in ('%pwshcmd%') do (
set "r_copy_file_source_path=%%~dpI"
set "r_copy_file_source=%%~nxI"
)

Это дало мне обе необходимые переменные, затем я обрезал окончание "\" по пути с помощью:

set r_copy_file_source_path=%r_copy_file_source_path:~0,-1%

Опять же, я ценю ответы! Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...