找不到文件-使用e:\命令通过CMD运行位于flashdrive上的文件

时间:2018-12-28 16:15:40

标签: file cmd boot

我最近在youtube上观看了一段视频,该视频在计算机处于启动模式时从其闪存驱动器运行一个批处理文件,尽管质量很差,但我可以看到他正在执行类似e:\的操作,然后执行该文件,但是当我尝试执行此操作时,即使通过桌面上的cmd,它也始终显示

C:\Users\username>e:\hack   //the command
File not found - files   //the error

这是我试图运行的代码:

@echo off
:: variables

SET odrive=%odrive:~0,2%
set backupcmd=xcopy /s /c /d /e /h /i /r /y
%backupcmd% "%drive%\files" "C:\Users\%USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"

pause

pause只是为了查看是否有任何错误。

1 个答案:

答案 0 :(得分:-1)

批处理文件中的代码无法正常工作,因为使用%odrive:~0,2%引用了完全没有定义的环境变量odrive的前两个字符,至少在批处理文件本身中没有定义。并且"%drive%\files"引用了在批处理文件中也未定义的环境变量drive的值。

发布的整个不起作用的批处理文件可以替换为:

@%SystemRoot%\System32\xcopy.exe "%~d0\files" "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\" /C /D /E /H /I /Q /R /Y >nul

在此单个命令行上有一些注释:

  1. %~d0在执行期间被包含该单个命令行的批处理文件的驱动器号和冒号代替。

  2. 必须有一个包含文件和文件夹的子目录files,要复制到包含批处理文件的驱动器的根目录中。

  3. 将文件和文件夹从USB存储介质复制到用户Startup文件夹中用户的Windows 开始菜单中,以便在用户启动后自动在Windows上启动是没有意义的登录名应仅包含* .lnk文件。恶意软件编写者可以使用这种方法,但是可靠的程序员及其应用程序不会使用这种方法。

  4. 切勿同时使用选项/E/S/S用于复制带有子文件夹但没有空子文件夹的所有文件。 /E用于复制带有所有子文件夹(包括空子文件夹)的所有文件。因此,同时指定两者都没有意义。在这种情况下, XCOPY 使用/E

  5. 在目标为目录的情况下,目标路径应以反斜杠结尾,以使 XCOPY 可以100%清除目标为目录。在末尾以/I指定目标目录时,实际上并不需要选项\

  6. 单个命令行开头的
  7. @阻止了该命令行的显示,然后由cmd.exe执行,它像@echo off一样对批处理文件中的所有命令执行批处理文件。批处理文件。

为了更好地了解所使用的命令行及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。

  • call /? ...解释%~d0
  • xcopy /?

另请参见预定义Windows Environment Variables的列表。