【问题标题】:autohotkey wildcard read loop自动热键通配符读取循环
【发布时间】:2013-03-21 04:38:05
【问题描述】:

我想要一个脚本来命令多台计算机来分解高度可分布的工作负载。为了分配工作量,我将一半的任务标签放在一个文件中,将一半的任务标签放在另一个文件中,然后我使用 google 驱动器分配给计算机(这就是我需要不同文件名的原因)。所以 C:\googledrive\task1.txt 和 C:\googledrive\task2.txt

自动热键命令如下:

loop, read, c:\googledrive\task*.txt

但它似乎不是读取 task1.txt,而是尝试将“task*.txt”作为文字文件名读取,失败并结束循环。

想法?谢谢。

好的,尝试确保一切都以管理员权限运行(它们是)并确保文件存在(它们确实存在)并且文件路径中没有拼写错误(那里一切正常)。仍然不会真正读取文件。

有一点我在原帖中没有包含文件名的部分实际上是一个变量,所以循环命令实际上是这样的:

 loop, read, c:\googledrive\%task%*.txt

我只是认为那一点无关紧要。

如果我为每台计算机保存不同的脚本,我可以继续将通配符替换为实际位,并且它可以工作。

所以...我只是要用文件中的计算机名称来命名每个文件,然后将命令更改为:

loop, read, c:\googledrive\%task%%A_ComputerName%.txt

【问题讨论】:

  • 在我的电脑上工作,文件不存在,或者脚本没有以管理员权限运行,必须访问需要管理员权限的文件夹。
  • 谢谢,我试着调查一下文件夹权限,看看能不能解决。
  • 不知道为什么它不适用于我使用通配符,但在文件名中使用计算机名变量解决了问题,实际上将整个过程简化了一两步。
  • 感谢罗伯特,这是一种让脚本加载目录中每个文件名的有趣方法。我现在已经解决了这个问题,但我会在以后的工作中记住这一点。

标签: wildcard autohotkey


【解决方案1】:

我是这样做的……

Loop, C:\Temp\Source\*.txt ; Lists the next file as A_LoopFileName
{
    Loop, read, C:\Temp\Source\%A_LoopFileName% ; process current file
    {
        IfInString, A_LoopReadLine, abc
        {
        .......
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多