Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не передается путь в bat скрипт

Aleksei Мастер (1426), на голосовании 4 дня назад
есть скрипт

@echo off
:: Request admin rights
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Running as administrator...
powershell -Command "Start-Process '%~f0' -Verb RunAs"
exit /b
)

:: Save the file path
set "file_path=%~1"

:: Check if the file path is provided
if "%file_path%"=="" (
echo Error: No file selected.
pause
exit /b
)

:: Remove quotes from the file path
set "file_path=%file_path:"=%"

:: Check if the file exists
if not exist "%file_path%" (
echo Error: File "%file_path%" not found!
pause
exit /b
)

:: Fixed buffer file path
set "buffer_file=C:\Scripts\file-path.txt"

:: Save the file path in the buffer file
echo %file_path% > "%buffer_file%"

:: Generate output file path
set "output_file=%~dp1%~n1.docx"

:: Run Pandoc conversion
echo Converting file "%file_path%" to "%output_file%"...
pandoc -s -o "%output_file%" "%file_path%"

:: Check if the output file was created
if exist "%output_file%" (
echo Success! Created file: "%output_file%"
) else (
echo Error during conversion.
)

pause
exit /b

Создан для того, чтобы конвертировать через Pandoc формат md в docx. В контекстное меню добавлена строка, активирующая скрипт. Но скрипт всегда возвращает что файл не выбран
Голосование за лучший ответ
S.H.I. Оракул (68489) 1 месяц назад
@echo off
:: Request admin rights
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Запрос прав администратора...
powershell -Command "Start-Process -FilePath '%~f0' -ArgumentList '%*' -Verb RunAs"
exit /b
)

:: Save the file path
set "file_path=%~1"

:: Check if the file path is provided
if "%file_path%"=="" (
echo Error: No file selected.
pause
exit /b
)

:: Remove quotes from the file path
set "file_path=%file_path:"=%"

:: Check if the file exists
if not exist "%file_path%" (
echo Error: File "%file_path%" not found!
pause
exit /b
)

:: Fixed buffer file path
set "buffer_file=C:\Scripts\file-path.txt"

:: Save the file path in the buffer file
echo %file_path% > "%buffer_file%"

:: Generate output file path
set "output_file=%~dp1%~n1.docx"

:: Run Pandoc conversion
echo Converting file "%file_path%" to "%output_file%"...
pandoc -s -o "%output_file%" "%file_path%"

:: Check if the output file was created
if exist "%output_file%" (
echo Success! Created file: "%output_file%"
) else (
echo Error during conversion.
)

pause
exit /b
AlekseiМастер (1426) 1 месяц назад
И... Что изменилось?
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (267417) 1 месяц назад
Значит из меню файл аргументом не передается

воткни отладочную строку для начала

echo Received path: %~1
pause
Алекс Куха Высший разум (465861) 1 месяц назад
Вообще-то кавычки убираются уже здесь set file_path=%~1 , но, если по какой-то причине (?) это не работает, обратитесь к данному совету
Зачем люди ставят кавычки для здесь set "name=value" понять не смог
Похожие вопросы