windows - CMD 给我错误“系统找不到文件 output.txt”
问题描述
我有一个批处理脚本,它创建一个名为“output.txt”的文件并写入一些系统信息。我想打开该文件并将该信息存储在一个变量中。但是,当我运行脚本时,它给了我“系统找不到文件 output.txt”。这也是写入文件的同一脚本。
@echo off
(wmic os get Caption)>>output.txt
for /F "tokens=2* skip=1" %%G in (output.txt) do set info=%%G
echo version:%info%
pause
(wmic os get Caption)>>output.txt
之所以有效,是因为它创建了一个包含以下行的文件:
Caption
Microsoft Windows 10 Home
例如,我只是想获取 Windows 操作系统名称并将其存储在变量中
info=Windows 10 Home
解决方案
我可能会在不创建要读取然后删除的中间文件的情况下这样做:
@For /F Tokens^=6Delims^=^" %%A In ('WMIc OS Get Caption /Format:MOF 2^>Nul')Do @Set "info=%%A"
您应该在会话期间将值(没有任何不必要的尾随字符)存储到变量中,只要您不修改/覆盖它。%info%
cmd.exe
Echo Version:%info%
请注意,Windows 7 中存在一个错误(我认为),这可能会阻止mof.xsl
文件被WMIC.exe
. 不过,有临时和更永久的修复或解决方法,这确实超出了您的问题范围。
[编辑 /]
我想我会包含这个基于注册表的批处理文件,以便更快地检索替代解决方案:
@For /F "EOL=HTokens=2*" %%A In (
'Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V ProductName 2^>Nul'
)Do @Set "info=%%B"
推荐阅读
- botframework - 我使用 ARM 模板创建了新的 Qna Maker 应用程序和服务在创建 KB 时,我没有找到端点密钥
- c# - 在 .net core 3.1 中保存 appsettings.json
- laravel - 雄辩的查询根据数据透视表添加新字段
- dart - 从飞镖中的另一个列表中删除列表
- git - 如何在 Gitlab 上的合并请求中禁用“合并按钮”?
- java - Spring 可以具有 Java EE 依赖项和 JPA 映射吗?
- docker - Docker 推送命令给出错误“标签不存在”
- ruby-on-rails - Mongoid 配置 - 会话与客户端
- python - django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured
- python - 如何使用 Python 的 Google Vision OCR API 获取字数?