我正在编写一个批处理文件,并期望将三行字符串句子输出到一个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
去掉引号。然后echo
将line
的结果,用"
代替#
。
将代码括在一对括号中形成一个代码块,允许将输出重定向到文件。这样,输出文件只打开一次;使用>
开始,然后附加>>
是丑陋的,反复打开/关闭文件。
从提示符中查看for /?
和set /?
以获取文档-或者浏览SO