我的文件服务器上有一个驱动程序文件夹。我正在编写一个命令行脚本,该脚本将提示用户输入计算机型号。然后脚本将使用该输入复制正确的文件夹。
这是我的脚本
set /p model="Enter Model Number"
mkdir c:\j2Global\%model%
xcopy /s /e /y "\\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model%" "C:\j2Global\%model%\"
pause
我想知道的是是否可以在输入前添加文本。
例如,驱动程序文件夹名为 Optiplex 9010 或 Latitude E5440,因此当前用户必须输入 Optiplex 或 Latitude。
有没有办法可以改变文件夹路径,以便如果用户输入 9010,它就会抓取 Optiplex 9010 文件夹?
我想我要做的是将文件夹路径“\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model%”更改为“\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops*%model%”之类的路径
答案1
鉴于您只有 2 个可能的选择,最简单的方法是简单地验证文件夹是否存在,并在两种情况下都尝试。如果存在,它会复制文件。这是脚本:
set /p model="Enter model number"
set "model1=OptiPlex %model%"
set "model2=Latitude %model%"
if exists "\\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model1%" (
:: enter commands for OptiPlex below this line
)
if exists "\\j2hqfil01\software\01_ALL DRIVERS\Dell\Desktops\%model2%" (
:: enter commands for Latitude below this line
)
答案2
我想知道是否可以在输入前添加文本。
以下是将文本添加到变量的示例:
set /p model="Enter Model Number"
set model=OptiPlex %model%
用户输入9010
,它会在其前面添加“Optiplex”,并将新值(返回)分配给“模型”,因此最终“模型”现在的值为OptiPlex 9010
。
如何使用它来选择所需的文件夹是另一回事,而且实际上应该是它自己的单独问题。
答案3
如果您要使用 if(s) 使其不区分大小写,则可能需要使用 /I 参数。
如果要检查子字符串是否是字符串的一部分,我会使用 FINDSTR 正则表达式。使用正则表达式,您可以制定一组规则。
使用模型+数字创建数组
如果一个值或一些值是数组的一部分,它就会通过。
示例代码:
:开始
分类
set /p model = "输入你的模型"
设置名称1=Optiplex
设置名称2=纬度
设置编号1=9010
设置编号2=E5440
ECHO %名称1%%数字1%
ECHO %名称2%%数字2%
设置/p 模型 1=%名称 1% %数字 1%
设置/p 模型2=%名称2% %数字2%
:标签
rem 添加代码以便更轻松地管理多个设备,例如 FOR LOOP 来加载 20
rem 变量在虚拟变量中逐一出现。
:环形
如果 %model%==%model1%|%name1%|%number1% (
ECHO 您选择 %model1%!
转到:路径
)
如果 %model%==%model2%|%name2%|%number2% (
ECHO 您选择 %model2%!
转到:路径
) 别的 (
ECHO 错误命令!
转到:开始)
:小路
rem 在这里输入你的 XCOPY 脚本!