Batch file 批处理-如何创建多个文本文件?
我有以下脚本:Batch file 批处理-如何创建多个文本文件?,batch-file,cmd,Batch File,Cmd,我有以下脚本: @echo off :metka SET /p LPN=[Please scan/add LPN-nr.] SET /p NumberOfBoxes=[Please add number of boxes/quantity] echo %LPN% echo %NumberOfBoxes% if %LPN%==0 (goto:metka) pause 问题: 如何使用以下用例扩展脚本 用例1: 如果%NumberOfBox%小于2,则创建以下文本文件,其中%LPN%为1
@echo off
:metka
SET /p LPN=[Please scan/add LPN-nr.]
SET /p NumberOfBoxes=[Please add number of boxes/quantity]
echo %LPN%
echo %NumberOfBoxes%
if %LPN%==0 (goto:metka)
pause
问题:
如何使用以下用例扩展脚本
用例1:
如果%NumberOfBox%小于2,则创建以下文本文件,其中%LPN%为123:
LPN123.TXT内容LPN123
用例2:
如果%NumberOfBoxes%大于或等于2,则按照%NumberOfBoxes%中的指定创建尽可能多的文本文件,其中%LPN%为123:
LPN123.TXT内容LPN123
LPN123-2.TXT内容LPN123-2
LPN123-3.TXT内容LPN123-3
LPN123-4.TXT内容LPN123-4
非常感谢。我相信您正在寻找的是一个for循环:
如果我没有弄错,当%NumberOfBox等于1时,echo LPN%LPN%>LPN%LPN%.TXT命令将执行两次,以防止出现以下情况:1。首选将1,1中的/l%%i,%NumberOfBox%do更改为2,1中的/l%%i,%NumberOfBox%do,删除循环体中的if条件,只保留echo LPN%LPN%%-%i>LPN%LPN%%-%i.TXT;2.将if%NumberOfBox%lss 2更改为if%NumberOfBox%lss 1…此外,您应该在为LPN设置/P NumberOfBox=相同之前设置NumberOfBox=以避免在用户在提示中按{Enter}时使用上一个值。由于两个提示值似乎都是纯数字,因此您应该在为LPN设置/P NumberOfBoxes=相同后立即设置/A NumberOfBoxes+=0,如果它也是一个数字,则强制转换为有效的32位有符号整数空或无效数字输入变为0,这样您就不会在以后扩展%NumberOfBoxes%和%LPN%时遇到问题……最后,对于数字32位有符号整数相等性检查,您可以使用if%%i eq 1而不是if%%i==1…感谢您的建议。如果%NumberOfBox%为1,则会执行两次echo LPN%LPN%>LPN%LPN%.TXT命令,这是正确的,我喜欢您对该问题的第一个解决方案。我会把这个加到我的回答中,谢谢!至于你的第二个评论,问题是如何扩展脚本,所以我把OP已经有的东西都放在那里了。如果没有输入任何内容,他们可能希望%NumberOfBox%和%LPN%从上一个循环中结转,如果输入了非数值,他们可能希望它崩溃。首先,非常感谢您的快速回答。问题:创建的每个文件在变量%LPN%的内容前后都应该有固定的文本。我如何实现它?提前谢谢!
@echo off
:metka
SET /p LPN=[Please scan/add LPN-nr.]
SET /p NumberOfBoxes=[Please add number of boxes/quantity]
echo %LPN%
echo %NumberOfBoxes%
if %LPN%==0 goto metka
echo LPN%LPN% > LPN%LPN%.TXT
for /l %%i in (2, 1, %NumberOfBoxes%) do (
echo LPN%LPN%-%%i > LPN%LPN%-%%i.TXT
)
pause