YuS_2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Smitis Цитата: А если в пути к файлу будет апостроф? | У меня выполняется без запинки, если в самом коде апострофы поменять на утроенные двойные кавычки: Код: powershell -ex bypass -c "&{[scriptblock]::create((gc -lit """%~f0""" -enc OEM) -join [char]10).invoke()}" | Цитата: Имхо, самый безопасный способ это передать имя файла через переменную среды | или так... тоже вполне рабочий вариант. Цитата: И сохранять всё в UTF8 без BOM | Ну, это необязательно... нормально работает и с другими кодировками: Код: <# :: @echo off >nul chcp 1251 echo Кириллица криво отобразится, если кодировка файла не совпадает с текущей кодовой страницей echo Но скрипт powershell отработает верно, в том числе и с кодировками, если правильно echo указать кодировку файла командлету get-content echo "%~0" echo === set "var=%~f0" powershell -ex bypass -c "&{[scriptblock]::create((gc -lit $env:var -enc default) -join [char]10).invoke()}" pause&exit /b #> $a,$b='Привет мир!','И вам не кашлять!' $a;$b | Цитата: А самое гадкое, что эта падла в этом случае даже если и запустится с LiteralPath, текущей директорией делает либо $PSHome либо корень диска. | Это да, зараза та ещё... ни кавычки, ни переменная среды не помогают. Причем на изменение текущего каталога влияют именно квадратные скобки... Добавлено: Но можно в самом скрипте попытаться это предусмотреть: Код: <# :: @echo off >nul chcp 1251 echo Кириллица криво отобразится, если кодировка файла не совпадает с текущей кодовой страницей echo Но скрипт powershell отработает верно, в том числе и с кодировками, если правильно echo указать кодировку файла командлету get-content echo "%~0" echo === set "var=%~f0" powershell -ex bypass -c "&{[scriptblock]::create((gc -lit $env:var -enc default) -join [char]10).invoke()}" pause&exit /b #> sl -lit $(split-path $env:var) gl $a,$b='Привет мир!','И вам не кашлять!' $a;$b |
| Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 11:26 19-03-2019 | Исправлено: YuS_2, 11:47 19-03-2019 |
|