【问题标题】:how to read data from a text file and iterate in windows?如何从文本文件中读取数据并在 Windows 中迭代?
【发布时间】:2014-12-11 10:15:20
【问题描述】:

我有一个以下格式的文本文件。我希望从文件中读取所有数据并将一个值作为参数传递给下一个命令。

dummy.txt

Administrators
Guests

基本上这些是用户组的名称,我正在使用 .NET 命令从特定组中删除用户。

如何遍历文件 (dummy.txt) 并执行以下命令来删除用户的特定组?

NET LOCALGROUP GROUP_NAME Administrator /delete

到目前为止,我已经尝试过类似的方法,但没有运气。

@echo off
for /f %%X in ("C:\dummy.txt") do (NET LOCALGROUP %%X Administrator /delete)

【问题讨论】:

    标签: windows batch-file for-loop


    【解决方案1】:
    @echo off
        for /f "usebackq" %%X in ("c:\my file path\dummy.txt") do (
            NET LOCALGROUP %%X Administrator /delete
        )
    

    usebackq 用于允许在执行的命令中使用单引号,并向 for 解析器指示双引号字符串是文件引用,而不是要解析的直接字符串。

    【讨论】:

    • 感谢 timrau 和 MC ND。这真的很有帮助。
    • 假设 dummy.txt 包含以下值,那么我们如何将其正确传递给循环中的 NET 命令。 code 管理员备份操作员code。 BACKUP OPERATORS 是单个字符串,但由于空格字符,它会导致问题。
    • @monoj,您必须向for /f 命令指明空格不是分隔符:for /f "usebackq delims=" %%X in ... 默认情况下,空格和制表符分隔标记。空的分隔符列表会禁用此行为。
    • @monoj,记得引用参数NET LOCALGROUP "%%X" ...
    • gr8 解决了这个问题。非常感谢@MC
    【解决方案2】:

    你应该删除包含文件名的双引号。

    for /f %%X in (C:\dummy.txt) do (NET LOCALGROUP %%X Administrator /delete)
    

    【讨论】:

    • 实际上我的文件路径之间包含空格,这就是我使用双引号的原因,如果我删除双引号,则出现找不到路径错误。我们如何在命令中使用 c:\my file path\dummy.txt。
    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2019-05-14
    相关资源
    最近更新 更多