作者loser1 (拍嘎爪得白酱)
看板Windows
标题Re: [问题] WIN bat 的问题
时间Thu Jun 23 11:51:19 2022
你是要 BAT 中将程式执行结果放到变数,还是
在 Powershell script 中将程式执行结果放到变数?
在 BAT 中,这操作有点复杂。
首先,
powershell “ls | Select-string -Pattern ‘MUSIC’” >
%TEMP%\TXT
将输出转向到一个档案
然後,利用 for 命令
set A=
记得上面有个空格作为 A 的内容
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION
for /F %%i in (%TEMP%\TXT) do set A=!A! %%~i
这样就能够将档案中的内容第一个非空白值全部串到变数A 当中
更进一步的操作用 for/? 来看 for 的用法
※ 引述《chiaohuang (宅男一枚)》之铭言:
: 因为某种需求需要写 windows 的批次档来帮我做繁琐的事
: 我查了 google 我需要的指令可以透过 powershell 达成
: 类似
: powershell “ls | Select-string -Pattern ‘MUSIC’”
: 输出是我要的没错
: 但我要怎麽把输出的结果存在变数呢?
: 效果要类似linux 的
: # ret=$(ls | grep ‘MUSIC’)
: # echo $ret
: 谢谢
因为太麻烦了之前我都用 active perl 来处理
--
垃圾 OS
--
http://i.imgur.com/Hm56xjp.jpg
http://i.imgur.com/8mNO8kx.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.9.148 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Windows/M.1655956281.A.6CF.html
※ 编辑: loser1 (125.227.9.148 台湾), 06/23/2022 11:54:53
1F:→ tomsawyer: 用powershell了就不要再bat了 刚好学点新的lol 06/23 16:32