3

Попытка запустить скрипт vim как часть командного файла с

vim -u NONE -S dothis.vim

но то, что озадачивает то, что пакетный файл выходит после этой строки вместо продолжения следующего оператора. Это происходит, если команда встроена или вызывается как подпрограмма. Если я создаю другой пакетный файл для ВЫЗОВА этой команды, мой основной пакет продолжит выполнение, но на экране больше ничего не отображается, кроме «Пожалуйста, нажмите любую клавишу ...» (реальные слова могут немного отличаться, больше не будет отображаться на экране), больше не могу видеть выполнение командного файла (было бы важно в этом случае).

Dothis.vim выходит с qa! если это как-то связано с проблемой (файлы уже были update ); он автоматически редактирует кучу файлов в подпапках.

1 ответ1

3

"Vim", который работает, вероятно, сам файл .bat. Это то, что установщик по умолчанию создает для вас, так или иначе.

Когда вы напрямую используете один .bat-файл из другого, первый .bat-файл больше не запускается, он передает управление второму без возврата.

Так что это закончит ваш .bat файл:

vim -u NONE -S dothis.vim

Но это должно работать:

call vim -u NONE -S dothis.vim

Теперь вы сказали:«это происходит, если команда встроена или вызывается как подпрограмма». Итак, ты попробовал это? Потому что этот файл .bat прекрасно работает для меня:

@echo off
setlocal

echo starting Vim
call vim -u NONE -S dothis.vim
echo Vim done!

endlocal
echo on

Когда я вызываю этот файл .bat, я вижу оба эхо-сообщения, как и ожидалось.

Я посмотрел на C:\Windows\vim.bat и убедился, что нигде нет операторов exit , которые могут вызвать проблемы в первом файле .bat, если все сделано неправильно. Если этот подход не работает, попробуйте опубликовать полный файл .bat, который не работает для вас. Как я уже сказал, вышесказанное работает для меня просто отлично. Пропуск call вызывает только первый запуск оператора echo.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .