使批处理文件尝试 Drives D/E/F/H 并将其从 G 复制到它们
Make Batch file try Drives D/E/F/H and have it copy from G to them
@echo on
set choice=
:D
if exist D: (set choice=D:) if exist (choice=D:) goto copyG else goto E
:E
if exist E: (set choice=E:) if exist (choice=E:) goto copyG else goto F
:F
if exist F: (set choice=F:) if exist (choice=F:) goto copyG else goto H
:H
if exist H: (set choice=H:) if exist (choice=H:) goto copyG
:copyG
xcopy /e /y G:19-Year10\*.* "%choice%"
pause
:removed
echo removed
这是我当前的代码。
但是并没有将文件从G盘复制到U盘。
有办法解决这个问题吗?
编辑:
谢谢,终于成功了,我用了这个
@echo off
echo.
echo Finding Drive to copy work from "G:19-Year10"
echo.
for %%i in (D: E: F: H:) do (
if exist %%i set drive=%%i
)
xcopy /e /y "G:19-Year10\*.*" "%drive%19-Year10\"
echo.
echo Files coped to "%drive%"
echo.
echo.
echo Remove %drive% Drive
:removle_of_drive
if exist %drive% (goto removle_of_drive) else exit
它知道你何时拔出 USB 并关闭批处理文件,并为你提供有关它正在做什么的更多信息
感谢您的帮助:Gerhard Barnard
所以这里我们可以使用wmic
来判断磁盘类型。 注意!!!如果连接了多个 USB,这将无法正常工作:
@echo off
for /F "tokens=1-4" %%a in ('wmic logicaldisk get caption^,description^,drivetype 2^>nul') do (
if %%l equ 2 (
echo xcopy /e /y "G:19-Year10\*.*" "%%d"
)
)
pause
另外注意我在xcopy
行添加了echo
来模拟命令,只去掉echo来执行ACTUAL xcopy
命令一旦你高兴它会做你想做的事。
但基本上向您展示选择应该如何工作(根据您的示例):
CHOICE /C DEFH /M "Choose driveletter "
if errorlevel 4 set "Drive=H:"
if errorlevel 3 set "Drive=F:"
if errorlevel 2 set "Drive=E:"
if errorlevel 1 set "Drive=D:"
echo xcopy /e /y "G:19-Year10\*.*" "%Drive%\"
或者根据您知道的驱动器盘符自动执行它,而不是像第一个示例那样检测它(根据您的示例)
@echo off
for %%i in (D: E: F: H:) do (
if exist %%i echo xcopy /e /y "G:19-Year10\*.*" "%%i\"
)
@echo on
set choice=
:D
if exist D: (set choice=D:) if exist (choice=D:) goto copyG else goto E
:E
if exist E: (set choice=E:) if exist (choice=E:) goto copyG else goto F
:F
if exist F: (set choice=F:) if exist (choice=F:) goto copyG else goto H
:H
if exist H: (set choice=H:) if exist (choice=H:) goto copyG
:copyG
xcopy /e /y G:19-Year10\*.* "%choice%"
pause
:removed
echo removed
这是我当前的代码。 但是并没有将文件从G盘复制到U盘。
有办法解决这个问题吗?
编辑:
谢谢,终于成功了,我用了这个
@echo off
echo.
echo Finding Drive to copy work from "G:19-Year10"
echo.
for %%i in (D: E: F: H:) do (
if exist %%i set drive=%%i
)
xcopy /e /y "G:19-Year10\*.*" "%drive%19-Year10\"
echo.
echo Files coped to "%drive%"
echo.
echo.
echo Remove %drive% Drive
:removle_of_drive
if exist %drive% (goto removle_of_drive) else exit
它知道你何时拔出 USB 并关闭批处理文件,并为你提供有关它正在做什么的更多信息 感谢您的帮助:Gerhard Barnard
所以这里我们可以使用wmic
来判断磁盘类型。 注意!!!如果连接了多个 USB,这将无法正常工作:
@echo off
for /F "tokens=1-4" %%a in ('wmic logicaldisk get caption^,description^,drivetype 2^>nul') do (
if %%l equ 2 (
echo xcopy /e /y "G:19-Year10\*.*" "%%d"
)
)
pause
另外注意我在xcopy
行添加了echo
来模拟命令,只去掉echo来执行ACTUAL xcopy
命令一旦你高兴它会做你想做的事。
但基本上向您展示选择应该如何工作(根据您的示例):
CHOICE /C DEFH /M "Choose driveletter "
if errorlevel 4 set "Drive=H:"
if errorlevel 3 set "Drive=F:"
if errorlevel 2 set "Drive=E:"
if errorlevel 1 set "Drive=D:"
echo xcopy /e /y "G:19-Year10\*.*" "%Drive%\"
或者根据您知道的驱动器盘符自动执行它,而不是像第一个示例那样检测它(根据您的示例)
@echo off
for %%i in (D: E: F: H:) do (
if exist %%i echo xcopy /e /y "G:19-Year10\*.*" "%%i\"
)