2013-03-20 90 views
1

我想要一个脚本命令几台计算机来分解高度可分配的工作负载。为了分配工作量,我将一半的任务标签放在一个文件中,另外一半的任务放在另一个文件中,我使用谷歌驱动器分发给计算机(这就是为什么我需要不同的文件名)。因此,C:\ Google云端硬盘\ task1.txt和C:\ Google云端硬盘\ task2.txtautohotkey通配符读取循环

的AutoHotkey的命令如下:

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

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

想法?谢谢。

好的,尝试确保一切都以管理员权限(他们)运行,并确保文件存在(他们这样做),并没有在文件路径中的任何错别字(一切都很好)。仍然不会真正阅读文件。

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

​​

我只是想通这一点是无关紧要。

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

所以...我只是去命名与文件中的计算机的名称的每个文件,并更改命令:

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

在我的计算机上工作,要么文件不存在,要么脚本没有以管理员权限运行,必须访问需要管理员访问的文件夹。 – 2013-03-20 17:56:29

+0

谢谢,生病尝试调查文件夹的权限,看看是否解决它。 – user2124918 2013-03-20 19:10:25

+0

不知道为什么它对我来说不适用于通配符,但在文件名中使用计算机名变量解决了问题,并且实际上简化了整个过程一两步。 – user2124918 2013-03-20 19:51:28

回答

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 
     { 
     ....... 
     } 
    } 
}