标题: [其他] 批处理如何对字符串值的变量里的字符串值插入换行符 [打印本页]
作者: wjshan0808 时间: 2021-10-9 16:24 标题: 批处理如何对字符串值的变量里的字符串值插入换行符
如何对字符串值的变量里的字符串值插入换行符
不需要下面的结果- set param="this is demo"
- echo %param%
- ——结果——
- this is demo
- ——结果——
复制代码
而是需要以下的结果- ——结果——
- this
- is
- demo
- ——结果——
复制代码
作者: idwma 时间: 2021-10-9 16:36
- set param=this is demo
- set param=%param: =^&echo;%
- echo %param%
复制代码
作者: wjshan0808 时间: 2021-10-9 17:02
回复 2# idwma
——结果——
this^&echo;is^&echo;demo
——结果——
this is not what I wanted
作者: wjshan0808 时间: 2021-10-9 17:05
回复 2# idwma
结果不是我想要的那个
我在机器上测了
作者: idwma 时间: 2021-10-9 17:13
set param="this is demo"
把引号去掉
作者: wjshan0808 时间: 2021-10-9 17:18
回复 5# idwma
如果复制代码
一样是不能做到换行的
作者: wjshan0808 时间: 2021-10-9 17:25
本帖最后由 wjshan0808 于 2021-10-9 17:30 编辑
回复 5# idwma - set paramA=this
- set paramB=is
- set paramC=demo
-
- ::伪代码
- %param% = %paramA%+换行+%paramB%+换行+%paramC%
复制代码
要类似的这种操作,
场景是
命令 PowerShell -c Get-ExecutionPolicy -List
获取 到多行结果
把行结果赋值给一个变量
作者: Batcher 时间: 2021-10-9 17:32
回复 1# wjshan0808 - @echo off
- set param="this is demo"
- for %%i in (%param:~1,-1%) do (
- echo,%%i
- )
- pause
复制代码
作者: Batcher 时间: 2021-10-9 17:36
回复 7# wjshan0808 - @echo off
- setlocal enabledelayedexpansion
- set CrLf=^
-
-
- set paramA=this
- set paramB=is
- set paramC=demo
- set "param=%paramA%!CrLf!%paramB%!CrLf!%paramC%"
- echo !param!
- pause
复制代码
作者: idwma 时间: 2021-10-9 18:23
回复 6# wjshan0808
也能呀- set param=this-is-demo
- set param=%param:-=^&echo;%
- echo %param%
复制代码
作者: cmd1152 时间: 2021-10-9 19:40
本帖最后由 cmd1152 于 2021-10-10 09:41 编辑
- set a="this is demo"
- set a=%a: =^&echo(%
- echo(%a%
复制代码
作者: wjshan0808 时间: 2021-10-9 23:48
本帖最后由 wjshan0808 于 2021-10-9 23:54 编辑
回复 9# Batcher
非常感谢回复需求
代码如下- @echo off
-
- setlocal enabledelayedexpansion
-
- set psGetPolicy="& {Get-ExecutionPolicy -List;}"
- call :executionPowerShell %psGetPolicy% policy
- echo %policy%
-
- pause
-
- :executionPowerShell
- for /f "usebackq tokens=*" %%G in (`PowerShell -Command %1 `) do (
- set result=!result!%%G
- )
- set %2=!result!
- goto:eof
复制代码
要的是 代码中的变量 policy 的值是如下格式的
即 命令 echo %policy% 输出如下格式
排版不用对齐,只要是一行一行的就行- Scope ExecutionPolicy
- ----- ---------------
- MachinePolicy Undefined
- UserPolicy Undefined
- Process Undefined
- CurrentUser Undefined
- LocalMachine Undefined
复制代码
而不是如下格式- Scope ExecutionPolicy----- ---------------MachinePolicy UndefinedUserPolicy UndefinedProcess UndefinedCurrentUser UndefinedLocalMachine Undefined
复制代码
作者: wjshan0808 时间: 2021-10-9 23:49
本帖最后由 wjshan0808 于 2021-10-9 23:51 编辑
回复 11# cmd1152
感谢回复,具体细节请看12楼
作者: wjshan0808 时间: 2021-10-9 23:50
回复 10# idwma
非常感谢多次回复,具体细节请看12楼
作者: newswan 时间: 2021-10-10 01:08
- @echo off
- setlocal enabledelayedexpansion
- set LF=^&echo,
-
- set psGetPolicy="& {Get-ExecutionPolicy -List;}"
- call :executionPowerShell %psGetPolicy% policy
- echo %policy%
-
- pause
-
- :executionPowerShell
- for /f "usebackq tokens=*" %%G in (`PowerShell -Command %1 `) do (
- set result=!result!%%G!LF!
- )
- set %2=!result!
- goto:eof
复制代码
作者: cmd1152 时间: 2021-10-10 09:40
回复 12# wjshan0808 - set a="this is demo"
- set a=%a: =^&echo(^&echo(%
- echo(%a%
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |