我经常使用AutoHotKey,并且希望在启动时通过更改执行所有脚本,所以我制作了一个批处理文件,将AutoHotKey文件夹中的所有内容备份到Windows启动文件夹中,并计划将其每天运行:
xcopy ".\*" "C:\Users\%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" /y
我将此文件放置在AutoHotKey目录中,并且在运行时它会自行拾起,因为我忘记了使用“。*。ahk”仅获取AutoHotKey文件。因此,现在我的启动文件夹中也有此批处理文件,该文件毫无意义但无害(我认为)。
几次重新启动后,我的计算机在启动时就陷入了麻烦,打开了大量文件并启动了许多不同的程序。我收到数千个“您无法打开.dll”错误。
我以为自己感染了病毒并以安全模式重启。我记得该脚本,并在重新安装Windows之前检查了我的启动文件夹,并在其中看到成千上万个文件,这些文件已被我删除。
作为一个实验,我多次重启计算机都没有问题。然后,将批处理文件放回启动文件夹中,然后我的计算机再次出现混乱。
我的问题是,为什么要从放置目录之外的任何内容复制所有内容?另外,为什么它仅在启动时引起此问题?我通常在启动目录中运行该文件,没有任何反应。
答案 0 :(得分:1)
您已经在上面的评论中获得了所有好的建议。但是,让我给您更多的监督...
将pause
添加到脚本的底部。现在,双击运行脚本。
您会注意到cmd.exe
已在其工作目录中启动,名为C:\Windows\System32
,因此,您可以这样做:
xcopy ".\*" ...
您正在有效地从工作目录c:\windows\system32
复制
因此,请这样做:
xcopy "C:\path\to\files\*" ....
您也可以只cd /d C:\path\to\files\
,但是无论哪种方式,使用完整路径都是最佳解决方案,这意味着脚本可以放置在磁盘上的任何位置...或与此相关的任何磁盘上。
此外,正如 Compo 的注释中所述,在所有现代Windows版本中都有一个预设的AppData变量,您可以通过从cmd.exe运行来查看此变量:
echo %AppData%
因此,您应该只能以以下方式运行脚本:
xcopy "C:\path\to\files\*" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup" /y