Batch file 如何使用windows bat拆分字符串
如何使用windows bat脚本拆分字符串 对于下面的.bat代码段Batch file 如何使用windows bat拆分字符串,batch-file,Batch File,如何使用windows bat脚本拆分字符串 对于下面的.bat代码段 @echo off & setlocal EnableDelayedExpansion set j=0 for /f "delims=""" %%i in (config.ini) do ( set /a j+=1 set con!j!=%%i call set a=%%con!j!%% echo !a! (echo !a!|findstr "^#">nul 2>nul && (
@echo off & setlocal EnableDelayedExpansion
set j=0
for /f "delims=""" %%i in (config.ini) do (
set /a j+=1
set con!j!=%%i
call set a=%%con!j!%%
echo !a!
(echo !a!|findstr "^#">nul 2>nul && (
rem mkdir !a!
) || (
echo +)
rem for /f "tokens=2" %%k in(config.ini) do echo %%k
)
)
pause
下面的配置文件
Q
for/f xxxx in(testconfig.ini)do(set a=/path/to/case1 set b=vaule1)
@ECHO关闭
SETLOCAL ENABLEDELAYEDEXPANSION
设置“sourcedir=U:\sourcedir”
设置“filename1=%sourcedir%\q43407067.txt”
设置j=0
对于(%filename1%)中的/f“delims=”“”%%i,请执行以下操作(
设置/a j+=1
设置con!j!=%%i
调用集a=%%con!j!%%
echo!a!应等于%%i
(echo!a!| findstr“^#”>nul 2>nul&&(
回声mkdir!a!
) || (
回声+)
对于/f“令牌=2”%%k IN(“%i”)do echo“%%k”
对于/f“令牌=1,2”%%j,在(“%i”)中执行回显“%%j”和“%%k”
)
)
回音----------------------------
设局
后藤:EOF
您需要更改sourcedir
的设置以适应您的环境
我使用了一个名为q43407067.txt
的文件,其中包含了用于测试的数据
(这些是适合我的系统的设置)
因此,为了解决您的问题:
)
关闭了(
在前一行上。那一行上的)
关闭了(
在前一行上。(我将rem
更改为回音
,这样代码就会产生可见的东西)第一个(
在(echo!a!
行由关闭)
位于(现在)两个for/f
命令之后的行上。以及上的(
位于for..%%i..do(
由最后一个关闭)
位于echo-----
)
,因为它参与了括号对
和(
)之间需要一个空格
!a!
与%%i
相同-因此我不知道你为什么要进行所有的体操-毫无疑问,这是一个显示问题的最小示例
请注意,由于默认分隔符包含空格,因此如果任何一行在
/path/to/case
或值中包含空格,则必须重新设计方法。我不确定是否理解您需要的确切内容,因此以下内容可能不适合您的需要:
@Echo关闭
SetLocal EnableDelayedExpansion
设置“n=0”
对于/F“Delims=”(testConfig.ini)Do中的%%A(Set“=%%A”
如果“!”,1!”=“(设置/A“n+=1”,“i=0”
Echo=MD%%A
将“con[!n!]!i!=%%A”)设置为其他(对于/F“Tokens=1-2”%%B In('Echo=%%A'
)Do(设置/A“i+=1”
设置“con[!n!]!i!=%%B”&设置/A“i+=1”&设置“con[!n!]!i!=%%C”))
设局[
超时-1
后藤:EOF
如果您对输出感到满意并且真的想创建那些目录,请删除第6行上的Echo=
,是的,比您要多;我已经通过您的强大帮助解决了这个问题。set b=for/f“delims=”“”%%I in(config.ini)do(set/aj+=1 set con!j!=%I调用set a=%%con j!j!%%rem Echo!a!Echo!a!| findstr“^”>nul&&(rem echo====mkdir==set b=!a!mkdir”%LogDir%\!a!)| |(echo!b!for/F“eol=#令牌=1,2%%%x in(%%i)do(回显键%%x值%%y)))