Найди второй столбец и сделай новую партию - PullRequest
0 голосов
/ 13 февраля 2019

Как видите, пакетный файл создает сценарий VBS, и он должен создать другой пакетный файл, но это не так, поскольку findstr /R "^ECHO" "%~sf0" >> "temp.bat" копирует код, включая echo.Я хочу скопировать строку после ECHO и поместить их во временный файл.

Вот мой код

@echo off
echo This is batch

:::wscript.echo "This VBScript"
:::wscript.echo "Today is " & day(date) & "-" & month(date) & "-" & year(date)
findstr "^:::" "%~sf0">temp.vbs & cscript //nologo temp.vbs & del temp.vbs

goto b

ECHO @echo off
ECHO setlocal enabledelayedexpansion
ECHO set SCRIPT_INSTANCES=20
ECHO :: Create a temporary file if one doesn't already exist
ECHO if not exist script_count.txt >script_count.txt echo(%SCRIPT_INSTANCES%
ECHO :: Read in the value of the config file
ECHO set /p script_counter=<script_count.txt
ECHO :: If the value of script_counter is greater than 1, decrement it and start again
ECHO if %script_counter% gtr 1 (
ECHO     set /a script_counter-=1
ECHO     >script_count.txt echo(!script_counter!
ECHO 
ECHO     start "" cmd /c "%~0"
ECHO ) else (
ECHO     del script_count.txt
ECHO )
ECHO color a 
ECHO :a
ECHO tree C:/
ECHO goto a)

:b
findstr  /R "^ECHO" "%~sf0" >> "temp.bat"
pause
exit

1 Ответ

0 голосов
/ 13 февраля 2019

Вы можете убрать начальное эхо, используя пробел в качестве разделителя.

Поэтому измените эту строку.

findstr  /R "^ECHO" "%~sf0" >> "temp.bat"

На эту

FOR /F "TOKENS=1* DELIMS= " %%G IN ('findstr  /R "^ECHO" "%~sf0"') DO echo %%H >>"temp.bat"

Oneнедостатком этого кода является то, что он лишит все отступы вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...