草庐IT

while循环

全部标签

windows - 无法将 FOR 循环的输出分配给批处理文件中的另一个变量

我已使用FOR/F访问批处理文件中文件“last_bkp_date.txt”中的值。%%a的结果没问题,但我无法为v_abc赋值。我在for循环之前使用了setv_abc=来特别删除/移除任何过去对该变量所做的赋值。有人可以帮我解决这个问题吗?@SETLOCALEnableDelayedExpansion@echooffsetv_abc=FOR/F"tokens=1usebackq"%%aIN(last_bkp_date.txt)DO(setv_abc=%%aechovalueofa:%%aechovalueofabc:!v_abc!) 最佳答案

windows - 在批处理脚本中设置 for 循环

我正在尝试创建一个扫描文件夹中文件的批处理文件for/RD:\path\import_orders\xml_files\%%fin(*.xml)do(copy%%f"\\destination"iferrorlevel0move%%f"D:\path\import_orders\xml_files\archive\")已修复-但它不起作用。如果我执行它,它只会打印第一行代码。现在有效。我在“do(”之后添加了一个空格,现在它执行了。1)我的第二个命令可以吗?如果第一个命令一切顺利,我想将复制的文件移动到存档中。2)我应该如何更改循环以仅处理给定目录中的文件而不处理其中的子目录?

windows - FOR 循环变量中的空格问题 - 批处理脚本

我正在编写一个批处理脚本,它将使用WMIC命令获取Windows机器上所有组的列表,使用netlocalgroup获取组信息,然后将信息写入输出文件。这是我所拥有的:for/f"skip=1"%%ain('"wmicgroupgetname"')donetlocalgroup%%a>>"%OUTPUTFILEPATH%"2>nul&&echo.>>"%OUTPUTFILEPATH%"&&echo^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=>>"%OUTPUTFIL

python - 嵌套的 for 循环,设置变量和 if else 在批处理脚本中

我正在尝试制作一个批处理脚本,它将在文件中写入特定的IP地址。我有一个txt文件(由一个python脚本创建),其中包含一个IP地址列表(每个新行一个),现在我需要使用for循环ping每个IP,检查TTL值是否在100到128之间(windows主机)并将IP地址写入新文件。我一直在尝试调整以设置变量和for循环,但这一切都变得太复杂而无法运行。到目前为止,我已经达到:-编辑:在命令下更正for/f%iin(ip.txt)doping-n1%i|find"TTL"这将给我多行Ping输出,这里只显示单行(我使用4.2.2.2只是为了举例)Replyfrom4.2.2.2:bytes=

windows - Batch/cmd for 循环语法错误

这不是我正在做的全部内容。我已经蒸馏...我确定这里有一些我没有考虑到的微小而愚蠢的事情,我只是没有看到它。谁能告诉我为什么我可以成功执行以下netsh命令:netshwlanshowprofilename="SomeWifi"然而,它在for循环中失败了?for/F"tokens=1,2delims=:"%ain('netshwlanshowprofilename="SomeWifi"')doecho%a在for循环中它吐出此错误消息,而不是配置文件信息:Thereisnosuchwirelessinterfaceonthesystem.我错过了什么?括号中的上下文是否发生了变化(如

windows - 汇编循环循环太多次

我对汇编很陌生(昨天开始学习)并且遇到循环问题:下面的代码应该打印值0-49,但它打印的是0-49,然后是~20行垃圾(我假设这是堆栈的一部分,其他程序/程序的其他部分正在使用)。我预计问题出在第二个循环.loop,因为它打印了错误的行数,而打印由.loop处理。我正在使用FASM(FlatAssembler)程序来编译它。代码:formatPEconsoleinclude"win32ax.inc"start:movecx,50;numberofloops.mainloop:;fortestingpurposes,justpushes49-0ontothestackpushecx;pu

c++ - Windows 消息循环和 WTL

我正在尝试理解WTL的工作方式,而消息循环现在让我感到困惑。例如这个代码片段:link首先创建窗口,然后启动消息泵。它是如何工作的?CreateEx、UpdateWindow等不应该发送它们自己的不可见消息,例如WM_CREATE/WM_PAINT/WM_NCPAINT吗?如果消息泵未初始化,它们会被扔到哪里?如果您创建一个窗口,启动消息循环,然后关闭该窗口,但又想在原处创建一个新窗口,会发生什么情况?PostQuit退出循环,你必须创建一个新循环? 最佳答案 了解发布消息(PostMessage)和发送消息(SendMessage

windows - 用于循环字符串替换的批处理文件

我有一个以目录路径作为参数的批处理文件。在该文件夹中,有任意数量的.ai.pdf或.pdf文件需要转换为jpg。转换不是我的问题(我使用的是imageMagick),但是去掉完整的扩展名是。我需要能够从文件名中删除完整的.ai.pdf(7个字符)或.pdf(4个字符)并将其替换为.jpg我不能在for循环中只使用~n因为它不会在有.ai.pdf的情况下取消.ai(结果是文件名.ai,我只需要文件名)StackOverFlow上有很多关于这个的帖子StackOverFlowExample但无论我尝试什么,在从文件名中截断适当数量的扩展名时都会出现错误。这是我的代码。这是我创建的第一个主要

windows - 批处理文件调用在 for 循环中转义重定向

我正在尝试从批处理文件中调用命令,该文件正在从文件中读取行。这工作正常,除非该行包含重定向字符>。有没有办法告诉call转义这个字符,或者在for循环的内容中替换它?我查看了setlocalenabledelayedexpansion并且(当调用更新为使用!时它仍然不起作用)。set/pstatus=这会产生以下输出(当check.bat回显的%1时)"a""a""b->b""b-"我试图在%%a中替换>但我不完全确定这是如何实现的,每次我尝试时,它都会产生一个空的字符串,即setline=%a:^>=¬%编辑1更多说明(似乎只有当%1设置为一个变量,然后使用该变量时才会出现这种情况)

c++ - 当检查是eof时,使用getline读取文本文件会导致无限循环

我正在尝试从特定行(第1、7、13等-所需数据放在下一个第6行)中的文本文件中获取一些数据到目前为止我的代码是这样的:txtfile="titles.txt";ifstreamtxt(txtfile);constintbuffer_size=80;chartitle_buffer[buffer_size];constinttitleLineDiff=6;if(txt.is_open()){while(!txt.eof()){staticintcounter=1;txt.getline(title_buffer,buffer_size);cout现在,它可以很好地处理我创建的这个文件:t