Пакетный файл для обработки ввода и экспорта в текстовый файл - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно, чтобы пользователи вводили от 1 до 20 входов, брали эти входы и собирали в них файл.

Я вроде как работаю с разными функциями, но сначала спрашиваю пользователя, сколько записей он хочет ввести, я хотел бы попросить пользователя ввести свою запись, и когда закончите, нажмите «q», например, и это будет собрать файл, необходимый.

@echo off
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
setlocal

:mainmenu
echo 1. 1 user
echo 2. 2 users
echo 3. 3 users
set selection=
set /p selection=Please choose a selection [1 - 3]:
if %selection% EQU 1 goto 1user
if %selection% EQU 2 goto 2users
if %selection% EQU 3 goto 3users
cls
goto mainmenu

:1user
set /p user1=Username 1

echo %user1%

(
echo rem Delete User Profiles after 2 days - Log activity to log.txt
echo "C:\Users\Administrator\Documents\apps\delprof2\delprof2.exe /ed:%user1% /d:2 /u /i ^>^> "C:\temp\log.txt""
echo rem Set following variable for file size in Bytes (1024 Bytes=1KB,  1024KB=1MB, 1024MB=1GB)
echo SET /A FileSize=6288
echo rem Set following variable for file extensions to check (*.* = all  files)
echo SET Filter=log.txt
echo rem Set following variable with path to check insided for files
echo SET Folder=c:\temp\
echo rem Delete the file if matches above
echo FOR /R "%Folder%" %%F IN (%Filter%) DO (
echo IF %%~zF GTR %FileSize% (
echo ECHO Deleting "%%F"
echo DEL /F "%%F"))
echo EXIT /B /0
) >> "c:\temp\testbat.txt"
timeout 10
goto mainmenu

1 Ответ

0 голосов
/ 16 апреля 2019

Вы в основном спрашивали "ввод до q". Это довольно просто с циклом:

@echo off
setlocal

set nr=1
:loop
  set /p "newuser=Enter user %nr% or [q] to quit: "
  if /i "%newuser%"=="q" set /a nr-=1 & goto :done
  set user_%nr%=%newuser%
  set /a nr+=1
goto:loop

:done
echo you entered %nr% users:
set user_
REM rest of your code

ПРИМЕЧАНИЕ: LotPings верен: To not prematurely ending a (code block) all closing praenthesis inside have to be escaped with a caret ^): до echo литерала ) внутри блока кода, вам нужно echo ^), иначе он заканчивает ваш блок кода (слишком рано).

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