Batch file 将文件从外部设备复制到特定文件夹的批处理文件

Batch file 将文件从外部设备复制到特定文件夹的批处理文件,batch-file,Batch File,我想创建一个批处理文件,将文件从外部设备复制到特定文件夹中,但我希望它从所有可用的外部设备复制,而不必为每个设备定义字母变量。 这是我的两个选择: @echo off cls&echo 0 md c:\system xcopy %~d0 c:\system /S /I /C exit 在第二种情况下,我必须指定所有不需要的设备变量 我发现%%d0会将文件复制到任何连接的设备上,但它只复制批处理所在文件夹中的文件。好的,请插入您的USB密钥并尝试此代码,然后告诉我这是否奏效 @echo

我想创建一个批处理文件,将文件从外部设备复制到特定文件夹中,但我希望它从所有可用的外部设备复制,而不必为每个设备定义字母变量。 这是我的两个选择:

@echo off
cls&echo 0
md c:\system 
xcopy %~d0 c:\system /S /I /C
exit
在第二种情况下,我必须指定所有不需要的设备变量


我发现%%d0会将文件复制到任何连接的设备上,但它只复制批处理所在文件夹中的文件。

好的,请插入您的USB密钥并尝试此代码,然后告诉我这是否奏效

@echo off
Mode con cols=98 lines=10 & Color 9E
Title Searching the Drive letter of your USB Key by Hackoo 2015
set TargetFolder=c:\system
if not exist %TargetFolder% MD %TargetFolder%
echo.
ECHO   *******************************************************************************************
echo.
echo                           Searching the drive letter of your USB Key .......
echo.
ECHO   *******************************************************************************************
wmic logicaldisk get DeviceID,DriveType /Format:CSV > %Tmp%\tmp.txt 
for /f "skip=2 tokens=1-3 delims=," %%a in ('%COMSPEC% /a /c type "%Tmp%\tmp.txt"') do echo %%b %%c >> %Tmp%\tmp2.txt
for /f "tokens=1" %%i in ('%COMSPEC% /a /c type "%Tmp%\tmp2.txt" ^|Find "2"') Do (set MyUSBDrive=%%i)
Del %Tmp%\tmp.txt & Del %Tmp%\tmp2.txt
cls
echo.
ECHO   *******************************************************************************************
echo.
echo                          The drive letter of your USB Key is  %MyUSBDrive%
echo.
ECHO   *******************************************************************************************
pause 
cls
xcopy %MyUSBDrive% %TargetFolder% /S /I /C
pause

好的,只要插上你的USB钥匙,试试这个代码,让我知道这是否奏效

@echo off
Mode con cols=98 lines=10 & Color 9E
Title Searching the Drive letter of your USB Key by Hackoo 2015
set TargetFolder=c:\system
if not exist %TargetFolder% MD %TargetFolder%
echo.
ECHO   *******************************************************************************************
echo.
echo                           Searching the drive letter of your USB Key .......
echo.
ECHO   *******************************************************************************************
wmic logicaldisk get DeviceID,DriveType /Format:CSV > %Tmp%\tmp.txt 
for /f "skip=2 tokens=1-3 delims=," %%a in ('%COMSPEC% /a /c type "%Tmp%\tmp.txt"') do echo %%b %%c >> %Tmp%\tmp2.txt
for /f "tokens=1" %%i in ('%COMSPEC% /a /c type "%Tmp%\tmp2.txt" ^|Find "2"') Do (set MyUSBDrive=%%i)
Del %Tmp%\tmp.txt & Del %Tmp%\tmp2.txt
cls
echo.
ECHO   *******************************************************************************************
echo.
echo                          The drive letter of your USB Key is  %MyUSBDrive%
echo.
ECHO   *******************************************************************************************
pause 
cls
xcopy %MyUSBDrive% %TargetFolder% /S /I /C
pause
在命令中使用for循环来获取驱动器列表,然后就可以为每个驱动器运行xcopy命令

例如:

for /f "skip=1" %%b IN ('wmic logicaldisk where drivetype^=2 get deviceid') DO xcopy %%b c:\system /s
注意:该示例仅查找devicetype^=2的可移动驱动器,这是上面链接中的devicetype定义,您可以修改wmic命令的语法以仅返回所需的驱动器,如果要返回所有驱动器,只需删除where devicetype^=2即可

0=未知 1=没有根目录 2=可移动磁盘 3=本地磁盘 4=网络驱动器 5=光盘 6=RAM磁盘 希望这有帮助。

使用for循环和命令来获取驱动器列表,然后您将能够为每个驱动器运行xcopy命令

例如:

for /f "skip=1" %%b IN ('wmic logicaldisk where drivetype^=2 get deviceid') DO xcopy %%b c:\system /s
注意:该示例仅查找devicetype^=2的可移动驱动器,这是上面链接中的devicetype定义,您可以修改wmic命令的语法以仅返回所需的驱动器,如果要返回所有驱动器,只需删除where devicetype^=2即可

0=未知 1=没有根目录 2=可移动磁盘 3=本地磁盘 4=网络驱动器 5=光盘 6=RAM磁盘
希望这能有所帮助。

我对上一段代码做了一些改进,以获得所有连接的外部设备 检查它,让我知道,如果这以后做的把戏或没有

@echo off
Title The copy of all your connected external devices by Hackoo
Mode con cols=100 lines=20 & Color 9E
setlocal ENABLEDELAYEDEXPANSION
set TargetFolder=C:\TestCopy
wmic LOGICALDISK where driveType=2 get deviceID > wmic.txt
for /f "skip=1" %%b IN ('type wmic.txt') DO (
XCopy %%b\* !TargetFolder!\ /dsicfy)
Del wmic.txt
pause

我对上一个代码做了一些改进,以获得所有连接的外部设备 检查它,让我知道,如果这以后做的把戏或没有

@echo off
Title The copy of all your connected external devices by Hackoo
Mode con cols=100 lines=20 & Color 9E
setlocal ENABLEDELAYEDEXPANSION
set TargetFolder=C:\TestCopy
wmic LOGICALDISK where driveType=2 get deviceID > wmic.txt
for /f "skip=1" %%b IN ('type wmic.txt') DO (
XCopy %%b\* !TargetFolder!\ /dsicfy)
Del wmic.txt
pause

例如,当您插入USB钥匙时,是否要查找字母驱动器?@Hackoo是的,确实要查找字母驱动器吗?例如,当您插入USB钥匙时,是否要查找字母驱动器?@Hackoo是的,非常感谢您的努力,但当我运行它时,它会显示%MyUSBDrive%是K:当它是G:。当我运行wmic logicaldisk时,我得到C:,D:和E:作为硬件,G:,H:,I:,J:,和K:作为外部设备,可能需要K:因为它是最后一个?没有人感谢您的努力,但当我运行它时,它会说%MyUSBDrive%是K:当它是G:。当我运行wmic logicaldisk时,我得到C:,D:和E:作为硬件,G:,H:,I:,J:,和K:作为外部设备,可能需要K:因为它是最后一个?毫无疑问,你为我做了很多工作,但正如我所说,我有5个可移动设备,而且我只有一个连接设备,当它找不到其余驱动器时,会显示一个窗口。无论如何,这项工作都没有问题。非常感谢您为我工作,尽管正如我评论的那样,我有5个可移动设备,而且我只有一个连接的设备,当找不到其余驱动器时,它会显示一个窗口。不管怎么说,没问题。