Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理-如何创建多个文本文件?_Batch File_Cmd - Fatal编程技术网

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