如何获得此批处理过程以正确使用用户输入?

我们在工作场所使用了一堆远程驱动器,并且我正在开发一个包罗万象的驱动器映射器.bat文件,以帮助技术不太熟练的人们映射驱动器。

我目前有一个正在运行此代码:


@net use G: \\u-dom1.u-ssi.net\DFSRoot05784 /persistent:yes
@pause

这成功将DFSRoot05784驱动器映射到G:字母。

我要尝试做的是允许用户提供驱动器号和映射地址,然后代码将其用于执行相同的操作。目前,我提出了以下建议:

@ Echo Create new drive mapping

set /p driveLetter= "Choose a drive letter"

set /p driveAddress= "Enter a drive address"

@net use driveLetter: driveAddress /persistent:yes

@pause

它成功询问了驱动器号和映射地址,但此后出现错误67。关于命令行如何接受和使用变量,我是否不了解?我需要更改什么才能使其按我的方式工作?

LOVE11203 回答:如何获得此批处理过程以正确使用用户输入?

您应该将变量包装在%中,以使系统将其标识为变量而不是纯文本:

我还建议您首先确认驱动器号尚未使用。

@echo off
:begin
echo( & echo Create new drive mapping & echo(
set /p "driveLetter=Choose a drive letter: "
if not exist %driveletter%: (
    set /p "driveAddress=Enter a drive address: "
   ) else (
   echo drive "%driveletter%:" already in use please try again.
   goto begin
 )
   net use %driveLetter%: %driveAddress% /persistent:yes

pause

此外,这还假定用户实际输入了完整地址。即\\server\path,然后将其存储在变量%driveAddress%

本文链接:https://www.f2er.com/3144942.html

大家都在问