![为什么以管理员身份运行该脚本会导致它创建一个 1GB 的文件夹?](https://linux22.com/image/1416835/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BB%A5%E7%AE%A1%E7%90%86%E5%91%98%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E8%AF%A5%E8%84%9A%E6%9C%AC%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%AE%83%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%201GB%20%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
一个批处理脚本旨在将另一个批处理脚本复制到 Windows 中的用户文档文件夹,但当用户以管理员权限运行该脚本时,却在用户的文档文件夹中创建了一个约 1GB 大小的文件夹,这造成了不良影响。查看了该脚本后,我仍然不确定是什么导致了此行为。
这是源代码,名为 test1_install:
@echo off
mkdir %userprofile%\Documents\test1
copy *.* "%userprofile%\Documents\test1\" /Y
copy "test1 - Shortcut.lnk" "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup" /Y
它被放置在一个文件夹中,该文件夹包含另外三个文件 - “test1.bat”、“input.txt”和“test1 - Shortcut.lnk”。整个文件夹大小只有 16KB。
我肯定我忽略了一些显而易见的东西。那是什么?
答案1
该行使copy *.* "%userprofile%\Documents\test1\" /Y
批量复制数据不从其所在的目录存储在,但从目录它被称为.cd /d %~dp0%
在第一行之后插入,使后一个目录成为前一个目录。