здесь партия сценарий:окна CMD вызова пакетный файл много раз
@echo off
cls
setlocal EnableDelayedExpansion
title %~nx0 %1
color 0f
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat"
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat"
echo.
set linker_file="C:\my_compiler_libs.txt"
if %~x1==.cpp cl /EHsc @%linker_file% %1
if %~x1==.c cl /EHsc @%linker_file% %1
if %~x1==.sln msbuild %1 /m /p:configuration=debug /p:platform=win32
echo.
if exist "%~n1.obj" del "%~n1.obj"
echo.
echo 1: compile again
echo 2: run in cmd
echo 3: run
echo 4: exit
echo.
set /p answer=
if %answer%==1 call %~f0 %1
if %answer%==2 cmd /k "%~n1.exe"
if %answer%==3 "%~n1.exe"
if %answer%==4 exit /b
, когда я выбираю 1 скомпилировать снова он работает и my_compiler.bat называть себя по мере необходимости, но только дерево раз, если выбрать 1 в четвертый раз он падает с ошибкой входной линии слишком долго любая помощь, пожалуйста,
Вы проверили, как выглядит строка 'call% ~ f0% 1'? Каковы значения '% ~ f0' и'% 1'? – GolezTrol
% ~ f0 - полный путь к запущенному пакетному файлу, а% 1 - это командная строка, переданная этому пакетному файлу в моем случае .cpp-файл, который должен быть скомпилирован –
Возможно, это не дубликат, но [этот вопрос] (http: /stackoverflow.com/questions/16821784/input-line-is-too-long-error-in-bat-file), похоже, примерно такое же сообщение об ошибке. Может быть, это полезно. – GolezTrol