我们如何使用windows bat脚本分割字符串?
以下.bat代码段
for /f xxxx in (testconfig.ini) do (set a=/path/to/case1 set b=vaule1)
问
using (var currentFrame = await mediaCapture.GetPreviewFrameAsync(videoFrame))
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q43407067.txt"
set j=0
for /f "delims=""" %%i in (%filename1%) do (
set /a j+=1
set con!j!=%%i
call set a=%%con!j!%%
echo !a! SHOULD BE EQUAL TO %%i
(echo !a!|findstr "^#">nul 2>nul && (
echo mkdir !a!
) || (
echo +)
for /f "tokens=2" %%k IN ("%%i") do echo "%%k"
for /f "tokens=1,2" %%j IN ("%%i") do echo "%%j" and "%%k"
)
)
ECHO ----------------------------
SET con
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
我使用了一个名为q43407067.txt
的文件,其中包含我的测试数据。
(这些设置适合我的系统)
所以 - 解决你的问题:
)
关闭了之前的(
。 行上的)
行关闭之前的(
。 (我将rem
更改为echo
,以便代码生成可见的内容。(
行上的第一个(echo !a!
由)
关闭(现在)两个for /f
命令后面的行。并且(
上的for..%%i..do(
已被)
echo -----
关闭
醇>
您无法删除)
,因为它正在参与括号对。
in
和(
之间需要一个空格。
我已经表明了一种方式。请参阅文档提示中的for /?|more
(或SO上的许多文章)
在你的代码中,!a!
与%%i
相同 - 所以我不知道你为什么要进行所有的体操 - 无疑是提供一个显示问题的最小例子
请注意,由于默认分隔符包含 Space ,如果任何行包含/path/to/case
或value
中的空格,那么您必须重新设计方法
答案 1 :(得分:0)
我'不确定我是否理解你需要什么,所以后面的内容可能不适合你的需求:
@Echo Off
SetLocal EnableDelayedExpansion
Set "n=0"
For /F "Delims=" %%A In (testConfig.ini) Do (Set "_=%%A"
If "!_:~,1!"=="#" (Set/A "n+=1", "i=0"
Echo=MD %%A
Set "con[!n!]!i!=%%A") Else (For /F "Tokens=1-2" %%B In ('Echo=%%A'
) Do (Set/A "i+=1"
Set "con[!n!]!i!=%%B"&&Set/A "i+=1"&&Set "con[!n!]!i!=%%C")))
Set con[
Timeout -1
GoTo :EOF
如果您对输出感到满意并且确实想要创建这些目录,请删除第6行的Echo=