Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 列出USB设备并选择一个作为备份批处理文件_List_Batch File_Usb_Usb Drive - Fatal编程技术网

List 列出USB设备并选择一个作为备份批处理文件

List 列出USB设备并选择一个作为备份批处理文件,list,batch-file,usb,usb-drive,List,Batch File,Usb,Usb Drive,因此,我正在编写一个小的批处理文件,它可以做一些有用的事情,但我在一个方面遇到了问题,具体来说,我使用以下命令: set/p choice=“按Enter键显示可用的备份USB驱动器” 如果“%choice%”==“wmic logicaldisk,其中drivetype=2,则获取设备ID,volumename, 它可以工作,并显示可用的usb设备,但我想从这些设备中创建一个列表,以便用户可以选择用作备份驱动器的驱动器,非常感谢任何帮助这将显示所有可用驱动器并测试答案是否为有效驱动器(列表中有

因此,我正在编写一个小的批处理文件,它可以做一些有用的事情,但我在一个方面遇到了问题,具体来说,我使用以下命令:

set/p choice=“按Enter键显示可用的备份USB驱动器”
如果“%choice%”==“wmic logicaldisk,其中drivetype=2,则获取设备ID,volumename,


它可以工作,并显示可用的usb设备,但我想从这些设备中创建一个列表,以便用户可以选择用作备份驱动器的驱动器,非常感谢任何帮助这将显示所有可用驱动器并测试答案是否为有效驱动器(列表中有):

您可以使用
转到:下一个
并使用
来代替
回音驱动器OK
$开车
作为所选驱动器。

:-)我创建了一个变量,用户输入该变量,而不是从实际列表中选择,用户只需键入驱动器号,例如:g:我意识到即使我创建了一个实际列表,用户仍然必须键入他想要使用的驱动器,那么,为什么不使用键入的驱动器号作为变量并将其添加到xcopy命令行中呢?下面是这个小实用程序的全部代码,稍后我将添加一个小文件夹树,以选择一个备份源,而不仅仅是手动键入它

`@echo off
:: variables
set backupcmd=xcopy /w /S /D /E /H /I /R /-Y
:start
echo =====================
echo   Backup Utility
echo =====================
echo.
set /p sourcepath=  Enter Folder or Drive path to be Copied:
echo.
ECHO =======================================================
echo Backup Source Path: %sourcepath%
ECHO =======================================================
echo.
set /p choice="Press Enter to show available Backup USB Drives"
ECHO ======================================================= 
echo.
if "%choice%"=="" wmic logicaldisk where drivetype=2 get deviceid,       
volumename, description
echo.
ECHO =======================================================
echo.
ECHO =======================================================
set /p backuppath= Enter Backup Destination, Use DeviceID (e.g: E:):
echo You selected %backuppath% as your Backup destination 
ECHO =======================================================
echo.
echo =======================================================
echo.
echo Backup Sourcepath Selected=  %sourcepath%
echo Backup Destination Selected= %backuppath%
echo.
echo========================================================
ECHO.
set /p choice="If it looks good, Press Enter to Continue, or 0 to Start   
Over: " 
ECHO.
if "%choice%"=="" goto Backup Files
if "%choice%"=="0" goto start
pause

:Backup Files
echo =========== Ready to Back up your Files ===========
ECHO.
%backupcmd% "%sourcepath%" "%backuppath%"
ECHO.
echo Success!!
echo Finished at:
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%a-%%b-%%c)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a:%%b)
echo %mytime% %mydate%
start %backuppath%
echo =====================================================
echo.
goto start`

不幸的是,我没有任何USB驱动器插件来查看WMIC命令的输出是什么。您能否编辑您的问题以显示命令的输出。谢谢。输出为:Description:Removable Disk DeviceID:E:VolumeName:CORSAIRLike this您无法控制现有的USB驱动器。测试用户是否输入了现有的。从编程角度来说,这是一个非常糟糕的解决方案。您有一个完整的工作解决方案。提供的脚本仅显示2个设备,如果我有2个以上的设备无法显示,我如何修改它以显示所有usb设备?
`@echo off
:: variables
set backupcmd=xcopy /w /S /D /E /H /I /R /-Y
:start
echo =====================
echo   Backup Utility
echo =====================
echo.
set /p sourcepath=  Enter Folder or Drive path to be Copied:
echo.
ECHO =======================================================
echo Backup Source Path: %sourcepath%
ECHO =======================================================
echo.
set /p choice="Press Enter to show available Backup USB Drives"
ECHO ======================================================= 
echo.
if "%choice%"=="" wmic logicaldisk where drivetype=2 get deviceid,       
volumename, description
echo.
ECHO =======================================================
echo.
ECHO =======================================================
set /p backuppath= Enter Backup Destination, Use DeviceID (e.g: E:):
echo You selected %backuppath% as your Backup destination 
ECHO =======================================================
echo.
echo =======================================================
echo.
echo Backup Sourcepath Selected=  %sourcepath%
echo Backup Destination Selected= %backuppath%
echo.
echo========================================================
ECHO.
set /p choice="If it looks good, Press Enter to Continue, or 0 to Start   
Over: " 
ECHO.
if "%choice%"=="" goto Backup Files
if "%choice%"=="0" goto start
pause

:Backup Files
echo =========== Ready to Back up your Files ===========
ECHO.
%backupcmd% "%sourcepath%" "%backuppath%"
ECHO.
echo Success!!
echo Finished at:
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%a-%%b-%%c)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a:%%b)
echo %mytime% %mydate%
start %backuppath%
echo =====================================================
echo.
goto start`