delayedvariableexpansion

    2热度

    2回答

    我正在面临批处理脚本中读取CSV文件内容的问题。我有一系列的文件说My_A_File.csv, My_B_File.csv ... My_Z_File.csv。我面临的问题是阅读其中的特殊字符。因此,想要阅读delayedexpansion关闭的值。 当我用disabledelayedexpansion读取块中的值时,它们是空的!我该如何处理? 脚本: @echo off setlocal en

    1热度

    1回答

    当我在.BAT文件IF语句中使用:子句延迟扩展环境变量时,该行无法解析/执行。使用%符号而不是!为扩展工程。相同的延迟扩展在其他地方起作用,例如ECHO声明。例如: @echo off& setlocal enabledelayedexpansion set t=abcd echo !t:~0,2! if %t:~0,2% == ab echo equal if !t:~0,2! == a

    0热度

    1回答

    我想打印出补丁列表JSON格式这样: "patches" : { "1" : "KB123456", "2" : "KB123456", ... 但是这就是我得到: "patches" : { "1" : "", "2" : "patch[2]", "3" : "patch[3]", ... 这是我的代码 @echo off set count1=1 setlocal en

    1热度

    2回答

    我的Windows批处理文件应该读取文件名,并创建一个根据文件名的第2至5字母命名的目录: for %%f in (.\*.txt) do ( set string=%%~nf mkdir %string:~2,5% ) “字符串的值'虽然没有更新,即它在循环的每一步中都是相同的。我怎样才能更新它? 这是CMD输出: >for %f in (.\*.txt) do ( set strin

    0热度

    1回答

    我有一个下载YouTube视频的批处理文件,如01-title1.m4a,02-title2.m4a等。我无法让视频编号n正常工作。如果它是单个数字的数字,我想在前面追加一个零,但我无法让它工作。 如果我更改FOR的IF线IF %n%==%n:~0,1% SET n=0!n!,它的工作,但随后只n初始值在比较时使用。然而,当我在IF之前echo !n!==!n:~0,1!时,我得到1==1,2==

    0热度

    2回答

    在尝试重用代码我试图使用动态变量来测试一个条件,但无法得到我需要的结果。我正在使用延迟扩展。 1 Outside the for loop: 2 set "H_HEADER=FALSE" 3 set "SUB_TRANSTYPE=#" 4 5 Inside the for loop: 6 set "SUB_TRANSTYPE=!FULL_LINE:~0,1!" 7 if !SUB_T

    3热度

    1回答

    我玩弄批处理文件和延迟扩展。 我只是试图打印目录中所有项目的文件/文件夹名称。 @ECHO off SET title=%1 SET mp4="mp4" SET mkv="mkv" SET avi="avi" SET minimumSize=300 CD "E:\Documents\Films\Need_compressing" SETLOCAL ENABLEDELAYEDEXP

    -1热度

    1回答

    我有: setlocal EnableDelayedExpansion var inLoopVar=hey var first=!inLoopVar! echo %!first!% 此输出ECHO OFF因为%!first!%返回为空。 如何打印“嘿” 更新和澄清: 这里是我的全部代码的什么,我试图做 @ECHO OFF setlocal EnableDelayedExpansion

    1热度

    1回答

    在我努力了解for..do循环语法及其使用%%变量。我经历了两个具体的例子/实现,其中一个for循环不使用DELAYEDEXPANSION,另一个使用DELAYEDEXPANSION和!记号。 1st for循环似乎与Windows XP等较早的操作系统兼容,而2nd for循环示例则不兼容。 具体地说,第一for循环例如从该answer(这是关系到this)和第二for循环例如采取从该answe

    1热度

    2回答

    Windows CMD shell正在从目录名称中去除“!”字符。 假设当前工作目录为 “C:\\!MyFolder” 里面一个.cmd文件我用这个语法: set _STARTPATH=%CD% echo %_STARTPATH% C:\MyFolder显示没有爆炸(!) 这是常见的从WinXP到Win8.1。 问:有没有人知道解决此问题的方法?