Я знаю, что об этом уже спрашивали 100 раз, но каждый фрагмент кода, который я пробую, просто не работает. Я пытаюсь скомпилировать файл, а затем проверить файл ошибок, прочитать его построчно и вывести его в командную строку:
Это то, что я имею до сих пор:
Set var1= %1
Set var2= %var1:.mb=.ERR%
echo %var1%
echo %var2%
"C:\Program Files\MapInfo\MapBasic\mapbasic.exe" -D %var1%
FOR /f "delims=" %%a in (%var2%) do echo %%a
Таким образом, я беру путь к файлу в качестве командной строки, arg, это прекрасно работает, затем снимаю .mb и заменяю его на .ERR и запускаю программу для завершения файла .mb, все работает нормально, пока я нажмите на цикл.
Результат для цикла выглядит следующим образом при запуске с включенным echo:
FOR /F "delims=" %a in ("C:\Documents and Settings\woodrown\My Documents\Visual Studio 2008\Projects\MapInfoInteropTemplate1\MapInfoInteropTemplate1.ERR") do echo %a
но когда он запускается, он просто распечатывает
"C:\Documents and Settings\woodrown\My Documents\Visual Studio 2008\Projects\MapInfoInteropTemplate1\MapInfoInteropTemplate1.ERR"
не содержимое файла.
Я могу заставить его работать, если я дам ему точное имя и не буду указывать путь с пробелами, например 'MapInfoInteropTemplate1.ERR', но я хочу, чтобы оно использовало %var2%
для имени файла для чтения.
Если я поставлю '
по пути, он просто запустит мой текстовый редактор по умолчанию.
Я закончил тем, что пропустил генерацию всего пакетного файла компьютерного программирования, так что это действительно странно для меня, извините, если это основной вопрос.