批处理文件中不带引号的不换行空格



我正在编写一个批处理文件,并期望将三行字符串句子输出到一个txt文件,就像这样:

powershell "Get-appxprovisionedpackage -Online"
complete
123456

然而,第一句话:powershell "Get-appxprovisionedpackage -Online"包含分隔输出文件中的字符串的空格,如:

powershell 
"Get-appxprovisionedpackage -Online"
complete
123456

我不希望有引号"关于输出文件中的第一句话,因为我需要它可以作为powershell命令执行,任何专家都可以在这方面提供帮助和建议。谢谢你。

批处理代码:

@ECHO on
SETLOCAL enableDelayedExpansion
for %%A in (
powershell "Get-appxprovisionedpackage -Online"
complete
123456
) do echo %%A>> D:BatOutput.txt

Simple:

@ECHO on
SETLOCAL enableDelayedExpansion
for /F "delims=" %%A in (^"
powershell "Get-appxprovisionedpackage -Online"^
complete^
123456
^") do echo %%A>> D:BatOutput.txt

FOR改为FOR /F "delims=",用插入符号^字符结束每行,并在行与行之间插入空白行…

虽然更简单的解决方案是将所需的行存储在文件中,然后复制或键入/附加文件
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
(
for %%A in (
"powershell #Get-appxprovisionedpackage -Online#"
complete
123456
) do SET "line=%%~A"&ECHO !line:#="!
)>filename
GOTO :EOF

这里有一个的方法——但是我更喜欢Mofi的方法。

只需将每个"替换为其他未使用的字符。引用任何包含空格的字符串。将%%A中的值赋给用户变量line,使用%%~A去掉引号。然后echoline的结果,用"代替#

将代码括在一对括号中形成一个代码块,允许将输出重定向到文件。这样,输出文件只打开一次;使用>开始,然后附加>>是丑陋的,反复打开/关闭文件。

从提示符中查看for /?set /?以获取文档-或者浏览SO

上的数千个示例

相关内容

  • 没有找到相关文章

最新更新