Пакетный файл для l oop выводит одинаковую информацию для каждого цикла - PullRequest
0 голосов
/ 19 апреля 2020

Я не эксперт, просто пробиваюсь, но не могу понять это. Я ожидаю, что каждый выводимый текст будет другим, но он одинаковый,

У меня есть набор текстовых файлов, которые я передаю в GSAR.exe, который редактирует сценарий python, а затем выполняет его, выводя в текстовый файл. кажется, что l oop, но каждый выходной текст содержит один и тот же текст. Вот код Пожалуйста, имейте в виду, что во многом это были догадки, проб и ошибок.

@echo off
for %%a in (*_RGB.txt) do (
SetLocal EnableDelayedExpansion
set content=
for /F "delims=" %%D in ('type "*_RGB.txt"') do (set content=!content! %%D

_GSAR.EXE -s"129, 88, 47" -r"!content!" -o "_color.py"
"C:\Users\%MYname%\AppData\Local\Programs\Python\Python35-32\python.exe" _color.py > "%%~na_HSV.txt")
)

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Благодаря некоторой помощи от Стефана я придумал это ...

@echo off
   for %%a in (*_RGB.txt) do (
     for /F "usebackq delims=" %%D in ("%%a") do (
       set file=%%D
       set file_shortname=%%~na_HSV.txt
       call :parse_file)
   )

   goto :EOF

   :parse_file
       copy _temp_color.py _color.py
       _GSAR.EXE -s"129, 88, 47" -r"%file%" -o "_color.py"  
       "%LOCALAPPDATA%\Programs\Python\Python35-32\python.exe" _color.py > "%file_shortname%"
      del /f /q _color.py

   goto :EOF

_color.py менялся, поэтому последующие поиски не удавались. Doh !!

0 голосов
/ 19 апреля 2020

Вы обрабатываете все файлы (type *_RGB.txt) для каждого файла; это не то, что вы хотите. Вы хотите обработать только каждый файл. Следующее должно работать для вас (если ваш синтаксис параметров для _GSAR.EXE правильный; я не могу verfiy):

@echo off
SetLocal EnableDelayedExpansion
for %%a in (*_RGB.txt) do (
  for /F "usebackq delims=" %%D in ("%%a") do (
    _GSAR.EXE -s"129, 88, 47" -r"%%D" -o "_color.py"  
    "%LOCALAPPDATA%\Programs\Python\Python35-32\python.exe" _color.py > "%%~na_HSV.txt")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...