У меня проблемы с модификацией гибридного сценария Powershell / пакета, взятого из другого вопроса переполнения стека (https://stackoverflow.com/a/15885133/1683264).
При выборе файла и отображении параметра командной строки с кавычками, он работает нормально, если имя файла и путь короткие, однако, если длина больше, чем у окна cmd, он разделит его на две строки.
Я думаю, что это как-то связано с использованием параметра командной строки по сравнению с использованием переменной, однако я очень плохо знаком с пакетным сценарием и powershell, и я был бы признателен за любую помощь!
<# : chooser.bat
:: launches a File... Open sort of file chooser and outputs choice(s) to the console
:: https://stackoverflow.com/a/15885133/1683264
@echo off
setlocal
for /f "delims=" %%I in ('powershell -noprofile "iex (${%~f0} | out-string)"') do (
echo "%%~I"
)
pause
goto :EOF
: end Batch portion / begin PowerShell hybrid chimera #>
Add-Type -AssemblyName System.Windows.Forms
$f = new-object Windows.Forms.OpenFileDialog
$f.InitialDirectory = pwd
$f.Filter = "DAT Files (*.dat*)|*.dat*|All Files (*.*)|*.*"
$f.ShowHelp = $true
$f.Multiselect = $true
[void]$f.ShowDialog()
if ($f.Multiselect) {$f.FileNames} else {$f.FileName}
Я ищу вывод
"fullnameandpath.dat"
однако, если у меня длинный путь и имя файла, я получаю что-то вроде этого:
"fullnamea"
"
"ndpath.dat"