Batch file 如何写一个字符“x”的次数
我正在尝试创建一个批处理文件,该文件使用用户输入创建以下内容 要创建多少记录 要将文本文件另存为的文件名的名称 使用什么字符 选项3中的字符重复多少次 我是一个自学成才的批量生产新手,但我确实了解一些。。。。 下面是我所拥有的,我知道它是不正确的,可能只是向后的…我可能需要设置要写什么,在文本中的一行上重复多少次,然后对文件中的记录量重复步骤。 最终结果如下所示:Batch file 如何写一个字符“x”的次数,batch-file,repeat,Batch File,Repeat,我正在尝试创建一个批处理文件,该文件使用用户输入创建以下内容 要创建多少记录 要将文本文件另存为的文件名的名称 使用什么字符 选项3中的字符重复多少次 我是一个自学成才的批量生产新手,但我确实了解一些。。。。 下面是我所拥有的,我知道它是不正确的,可能只是向后的…我可能需要设置要写什么,在文本中的一行上重复多少次,然后对文件中的记录量重复步骤。 最终结果如下所示: 0000000000 0000 000000000 0000000000 0000 000000000 用户输入的总记录量
0000000000 0000 000000000
0000000000 0000 000000000
用户输入的总记录量的etc。。。
%column1bytecount%%column2bytecount%%column3bytecount%重复此%howmanyrecords%
以下方法不起作用。我必须靠近
@Echo Off
Set /P howmanyrecords=How Many Records Would You Like To Produce:
set /P savefilename=Please Type Name Of Sample Pin File To Save:
Set /P charactertowrite=What Character Would You Like To Use (typically 0 is used):
Set /P Column1bytecount=How Many Bytes In Column 1:
for /L %%A in (1,1,%howmanyrecords%) do (
echo 0000000000 0000 00000000 >> %savefilename%
我想这正是你想要做的
@Echo Off
setlocal enabledelayedexpansion
Set /P "howmanyrecords=How Many Records Would You Like To Produce: "
Set /P "savefilename=Please Type Name Of Sample Pin File To Save: "
Set /P "charactertowrite=What Character Would You Like To Use (typically 0 is used): "
Set /P "column1bytecount=How Many Bytes In Column 1: "
for /l %%i in (1,1,%howmanyrecords%) do (
set line=
for /l %%j in (1,1,%column1bytecount%) do (
set line=!line!!charactertowrite!
)
echo !line!>> !savefilename!
)
我想这正是你想要做的
@Echo Off
setlocal enabledelayedexpansion
Set /P "howmanyrecords=How Many Records Would You Like To Produce: "
Set /P "savefilename=Please Type Name Of Sample Pin File To Save: "
Set /P "charactertowrite=What Character Would You Like To Use (typically 0 is used): "
Set /P "column1bytecount=How Many Bytes In Column 1: "
for /l %%i in (1,1,%howmanyrecords%) do (
set line=
for /l %%j in (1,1,%column1bytecount%) do (
set line=!line!!charactertowrite!
)
echo !line!>> !savefilename!
)
@回音
SETLOCAL
Set/P howmanyrecords=您希望生成多少条记录:
set/P savefilename=请键入要保存的示例Pin文件的名称:
Set/P charactertowrite=您希望使用的字符通常为0:
Set/P Columnbytecount=列中以逗号分隔的字节数:
设定线=
调用:设置行%columnbytecount%
对于1,1中的/l%%i,%howmanyrecords%do
>>%保存文件名%echo%行%
后藤:EOF
:设定线
设置此列=%1
如果未定义此列,则设置行=%line:~0、-2%&转到:EOF
:buildloop
设置行=%line%%charactertowrite%
设置/a此列-=1
如果%thiscolumn%neq 0转到buildloop
::添加分隔符-未指定2个空格
设置行=%line%
转移
后藤线
这应该可以完成工作
我稍微修改了规范。您可以将列作为一系列数字输入,用逗号或空格分隔。例如,输入10,4,9
该过程在第行中构建输出行,然后按所需次数写入该行。请注意,不能将标签放在带括号的一系列语句中的块语句中
setline子例程接受指定为columnbytecount的参数列表。它将第一个参数放入该列,并将指定的字符添加到该行。当计数为零时,它会添加两个空格(不指定间距),但看起来像两个空格,并移动参数列表,使原始的第二个参数变为第一个
重复该操作,直到参数列表被释放,然后删除最后两个字符,因为当最后一列结束时已添加了两个空格,通过到达文件末尾退出子例程
子字符串语法是
%var:~start,length% if start >=0 and length >0
%var:~start,endpos% if start >=0 and endpos <0
%var:~start,length% if start <0 and length >0
%var:~start,endpos% if start <0 and endpos <0
长度/结束位置可以省略。如果省略,则子字符串从开始位置到结束
%可能是!对于延迟扩展模式
@回音
SETLOCAL
Set/P howmanyrecords=您希望生成多少条记录:
set/P savefilename=请键入要保存的示例Pin文件的名称:
Set/P charactertowrite=您希望使用的字符通常为0:
Set/P Columnbytecount=列中以逗号分隔的字节数:
设定线=
调用:设置行%columnbytecount%
对于1,1中的/l%%i,%howmanyrecords%do
>>%保存文件名%echo%行%
后藤:EOF
:设定线
设置此列=%1
如果未定义此列,则设置行=%line:~0、-2%&转到:EOF
:buildloop
设置行=%line%%charactertowrite%
设置/a此列-=1
如果%thiscolumn%neq 0转到buildloop
::添加分隔符-未指定2个空格
设置行=%line%
转移
后藤线
这应该可以完成工作
我稍微修改了规范。您可以将列作为一系列数字输入,用逗号或空格分隔。例如,输入10,4,9
该过程在第行中构建输出行,然后按所需次数写入该行。请注意,不能将标签放在带括号的一系列语句中的块语句中
setline子例程接受指定为columnbytecount的参数列表。它将第一个参数放入该列,并将指定的字符添加到该行。当计数为零时,它会添加两个空格(不指定间距),但看起来像两个空格,并移动参数列表,使原始的第二个参数变为第一个
重复该操作,直到参数列表被释放,然后删除最后两个字符,因为当最后一列结束时已添加了两个空格,通过到达文件末尾退出子例程
子字符串语法是
%var:~start,length% if start >=0 and length >0
%var:~start,endpos% if start >=0 and endpos <0
%var:~start,length% if start <0 and length >0
%var:~start,endpos% if start <0 and endpos <0
长度/结束位置可以省略。如果省略,则子字符串从开始位置到结束
%可能是!对于延迟扩展模式
“不工作”不是一个有意义的问题描述。它以什么方式不起作用?它会给你错误的输出吗?它只是不执行吗?它是否以无效输入结束?请具体说明您发布的代码存在的问题-不起作用。我有更新
把我的代码转换成可以工作的东西。这将从%howmanyrecords%的用户输入重复回显多次。我想知道的是如何将回显0000000000000000000>>%savefilename%替换为用户输入。我已将代码更新为可以正常工作的代码。这将从%howmanyrecords%的用户输入重复回显多次。我想知道的是如何将回显0000000000000000000>>%savefilename%替换为用户输入。如何对Echo%charactertowrite%->>%column1bytecount%进行编码一行重复%howmanyrecords%不起作用不是一个有意义的问题描述。它以什么方式不起作用?它会给你错误的输出吗?它只是不执行吗?它是否以无效输入结束?请具体说明您发布的代码存在的问题-不起作用将不起作用。我已将我的代码更新为起作用的代码。这将从%howmanyrecords%的用户输入重复回显多次。我想知道的是如何将回显0000000000000000000>>%savefilename%替换为用户输入。我已将代码更新为可以正常工作的代码。这将从%howmanyrecords%的用户输入重复回显多次。我想知道的是如何将回显0000000000000000000>>%savefilename%替换为用户输入。我该如何编写Echo%charactertowrite%->%column1bytecount%一行重复%howmanyrecords%谢谢你Matt,我增加了代表因为你的代码很有用,我可能会根据你的代码计算出其余部分,但是Magoo下面的答案基本上达到了我想要的成品的目的。谢谢你的回复!没问题,Magoos的答案明显比我的好。谢谢你,Matt,我增加了代表,因为你的代码很有用,我可能会根据你的代码计算出其余部分,但是Magoo下面的答案基本上达到了我想要的成品。谢谢你的回复!没问题,Magoos的答案明显比我的好。哇,谢谢Magoo,这正是我想要的最终产品…是的,它是2个空格。你们给了我最终产品,为我节省了很多时间,现在我可以和你们的产品一起玩,试着了解更多。再次感谢你哇,谢谢你马古这正是我想要的最终产品…是的,它是2个空间。你们给了我最终产品,为我节省了很多时间,现在我可以和你们的产品一起玩,试着了解更多。再次感谢你