如何使用 Windows CMD 将文件名的副本保存到空白文本文档中?

How can you use Windows CMD to save a copy of a file name to a blank text document?

我一直在我的闪存驱动器上试验 Xcopy,正如 reader 最有可能知道的那样,这是一种非常有效地 t运行sfer 多个文件副本的方法。在我的实验中,我有一个想法。我运行(将在评论末尾公开)的代码设置为从我的桌面复制文件,音乐,照片等。但是,在我的桌面上有一个特别大的文件,用于我经常玩的游戏。当程序到达游戏文件时,复制文件需要很长时间,因为游戏 运行 是 3D 环境,我需要这段代码才能 运行 快速有效。所以,我想 was:Is 有一种方法可以复制文件名(在这种情况下,游戏的名称,FTB),让程序只复制文件名,然后创建一个文本文件代码所在的闪存驱动器 运行,然后用复制的名称覆盖该文档的名称?

这是 运行 的代码,我知道它有一些明显的问题,但正在处理中:

@echo off
:: variables/min
SET odrive=%odrive:~0,2%
set backupcmd=xcopy /s /c /d /e /h /i /r /y /EXCLUDE:MyExcludes.txt

%backupcmd% "%USERPROFILE%\Pictures" "%drive%\all\My pics"
%backupcmd% "%USERPROFILE%\Favorites" "%drive%\all\Favorites"
%backupcmd% "%USERPROFILE%\Videos" "%drive%\all\Vids"
%backupcmd% "%USERPROFILE%\Documents" "%drive%\all\Docs"
%backupcmd% "%USERPROFILE%\OneDrive" "%drive%\all\Onedrive"
%backupcmd% "%USERPROFILE%\Desktop" "%drive%\all\Desktop"
%backupcmd% "%USERPROFILE%\Network" "%drive%\all\Other devices"
copy "Bookmarks.bak" "all"
removedrive D: -L -H -A -W:1000

如果您需要任何额外信息,请直接询问。

  1. 将大文件添加到 myexcludes.txt 文件,这样它就不会复制

  2. 只需使用类似以下内容在备份驱动器上创建一个新文件(假设您的文件名为 mylargefilesname.ext)

     echo mylargefilesname.ext > "%drive%\location\mylargefilesname.ext"
    

------编辑------

要对所有 .exe 文件执行此操作,您可以排除 *.exe,然后使用循环。

for /f %%f in ('dir /b "%USERPROFILE%\Pictures\*.exe"') do echo %%f > "%drive%\all\My pics\%%~nxf"

这是循环 dir /b "%USERPROFILE%\Pictures\*.exe"

的结果

对于输出的每一行,它将使用文件名 + 文件扩展名将完整文件路径回显到新文件夹(这就是 nx 部分的作用)

我知道这是在复活一个旧线程,但我在整个互联网上都找到了这段代码(它被复制了很多),但没有对荒谬的 %odrive% 初始化和 non-initialization %drive%.

它不起作用,因为他们遗漏了一些代码。修复方法如下:

替换:

SET odrive=%odrive:~0,2%

与:

SET odrive=%CD%
SET drive=%odrive:~0,2%

第一行获取当前目录为%odrive%,第二行去掉前两个字符(例如,C:)并将它们分配给%drive%

请注意,该脚本假定它是 运行 来自可移动驱动器的。因此,您可以简单地将 %drive% 的所有实例替换为 .,它也同样有效。