相关疑难解决方法(0)

Windows批处理文件:.bat vs .cmd?

据我所知,它.bat是旧的16位命名约定,.cmd适用于32位Windows,即从NT开始.但我继续在任何地方看到.bat文件,并且它们似乎使用任一后缀完全相同.假设我的代码将永远不需要对新台币任何旧的运行,是否真的重要走哪条路我名字我的批处理文件,还是有一些疑难杂症,通过使用错误的后缀等着我?

windows cmd batch-file

715
推荐指数
8
解决办法
43万
查看次数

如果最后一个字符是使用批处理文件的分号,则使用下一行合并行

我有一个包含以下4行的文件.

A;1;abc;<xml/>;
;2;def;<xml
>hello world</xml>;
;3;ghi;<xml/>;
Run Code Online (Sandbox Code Playgroud)

使用批处理文件,我需要组合行,如果行不以分号(;)结尾,则将下一行合并到当前行.

所以期望的输出应该是

A;1;abc;<xml/>;
;2;def;<xml>hello world</xml>;
;3;ghi;<xml/>;
Run Code Online (Sandbox Code Playgroud)

我对批处理脚本不太熟悉,但for /F到目前为止尝试使用但没有运气.

据我所知,逻辑应该是检查每一行的最后一个字符,如果它不是分号,则将下一行读入当前行.

除此之外,我设法得到了该行的最后一个字符,但是如果它没有,我的脚本只读取该行; .有任何想法吗?

@echo off
for /f "tokens=*" %%i in (myfile.txt) do (
  set var=%%i
  echo %%i
  if "%var:~-1%"==";" (
    echo test
  )
)
Run Code Online (Sandbox Code Playgroud)

注意:上面的查询只读取第1行和第3行.

batch-file

4
推荐指数
1
解决办法
1555
查看次数

标签 统计

batch-file ×2

cmd ×1

windows ×1