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

时间:2016-08-30 23:21:52

标签: batch-file cmd xcopy

我一直在我的闪存驱动器上试验Xcopy,正如读者最有可能知道的那样,这是一种非常有效地传输多个文件副本的方法。在我的实验中,我有一个想法。我运行的代码(将在评论结束时公开)被设置为从我的桌面,音乐,照片等复制文件。但是,在我的桌面上我经常使用一个特别大的文件。当程序进入游戏文件时,复制文件需要很长时间,因为游戏运行的是3D环境,我需要这些代码快速有效地运行。所以,我的想法是:有没有办法复制文件的名称(在这种情况下,游戏的名称,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

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

2 个答案:

答案 0 :(得分:0)

  1. 将大文件添加到myexcludes.txt文件中,以便它不会复制

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

     echo mylargefilesname.ext > "%drive%\location\mylargefilesname.ext"
    
  3. ------编辑------

    要对所有.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部分的作用)

答案 1 :(得分:0)

我知道这是在恢复旧线程,但是我在互联网上发现了这段代码(已被大量复制),但对无意义的%odrive%初始化和{的未初始化{1}}。

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

替换:

%drive%

使用:

SET odrive=%odrive:~0,2%

第一行将当前目录显示为SET odrive=%CD% SET drive=%odrive:~0,2% ,第二行去除了前两个字符(例如%odrive%)并将其分配给C:

请注意,脚本假定它正在从可移动驱动器中运行。因此,您可以简单地将%drive%的所有实例替换为%drive%,它将同样有效。