Batch file 如何制作一个.bat脚本,从一个命令输出中获取信息,为每个输出执行命令,以创建文件路径?
所以,我要做的是,执行Batch file 如何制作一个.bat脚本,从一个命令输出中获取信息,为每个输出执行命令,以创建文件路径?,batch-file,Batch File,所以,我要做的是,执行netuser,只将帐户列在.txt文件中。(我已经这样做了,但最后一行“command completed successfully.”仍然会输出。)然后,考虑每个帐户并检查它是否处于活动状态。(net用户[account]| findstr/C:“account active”)。然后将这些文件创建为.txt文件。然后只需将文件路径C:\Users(用户找到的)\AppData\Roaming复制到剪贴板。如果有办法制作.txt文件那就太好了,但我可以通过删除它们来结束
netuser
,只将帐户列在.txt文件中。(我已经这样做了,但最后一行“command completed successfully.”仍然会输出。)然后,考虑每个帐户并检查它是否处于活动状态。(net用户[account]| findstr/C:“account active”
)。然后将这些文件创建为.txt文件。然后只需将文件路径C:\Users(用户找到的)\AppData\Roaming复制到剪贴板。如果有办法制作.txt文件那就太好了,但我可以通过删除它们来结束脚本。我目前一直关注的部分是获取“for”命令,从所有文本行中收集标记,而不仅仅是最后一行(并输出它们)
net user
的输出取决于语言。将搜索字符串更改为您的语言
外部for/f
循环处理net user
命令的输出(减去find
过滤的“command successful”行),跳过标题。内部的for
将行分解为单词(用户)并执行net user
命令Findstr
为激活的帐户过滤..是
行,如果成功(&&
),则打印用户名
您的剪贴板请求没有意义,因为可能有多个活动帐户。(如果您是肯定的,只有一个活动用户,您可以使用命令将内容回送到剪贴板)我将skip=更改为4,因为它跳过了第一行帐户,但除此之外,它工作得非常好,谢谢!
@echo off
setlocal enabledelayedexpansion
for /f "skip=4 delims=" %%a in ('net user^|find /v "Der Befehl wurde erfolgreich ausgeführt"') do (
for %%b in (%%a) do (
net user %%b | findstr /rc:"Konto aktiv.*Ja" >nul && >>ActiveAccounts.txt echo %%b
)
)