用户在批处理文件中定义变量

时间:2019-05-31 14:15:26

标签: batch-file

基本上,我不知道是否可以让用户定义变量。这样用户可以插入目录,然后批处理文件将适应该目录。

我要下载一些文件,并且这些文件将下载到一个非常特定的目录中,但是,用户可能已更改了该目录,因此在这种情况下,我希望用户能够设置自己的目录目录。

除了用户可以设置目录之外,我还完成了所有其他操作。这是我想到的代码,因为我说过,它唯一缺少的部分是其他。

if exist directory (
    do everything normally
) else (
    let the user decided the directory
)

1 个答案:

答案 0 :(得分:0)

(从法语翻译)

您好,我想我可以为您提供帮助,如果我理解正确的话,您希望用户输入要下载文件的目录。 所以:

set /p varia="> " 返回 > _,因此您可以输入目录

  

varia是将要写入结果的变量

     

"> "是用户输入之前显示的文本

否则,这是我最喜欢的方法之一:

echo Option Explicit > pppfolder.vbs
echo Dim strPath >> pppfolder.vbs
echo strPath = SelectFolder( "" ) >> pppfolder.vbs
echo If strPath = vbNull Then >> pppfolder.vbs
echo WScript.Echo "false" >> pppfolder.vbs
echo Else >> pppfolder.vbs
echo WScript.Echo strPath >> pppfolder.vbs
echo End If >> pppfolder.vbs
echo Function SelectFolder( myStartFolder ) >> pppfolder.vbs
echo Dim objFolder, objItem, objShell >> pppfolder.vbs
echo On Error Resume Next >> pppfolder.vbs
echo SelectFolder = vbNull >> pppfolder.vbs
echo Set objShell  = CreateObject( "Shell.Application" ) >> pppfolder.vbs
echo Set objFolder = objShell.BrowseForFolder( 0, "%~2", 0, myStartFolder ) >> pppfolder.vbs
echo If IsObject( objfolder ) Then SelectFolder = objFolder.Self.Path >> pppfolder.vbs
echo Set objFolder = Nothing >> pppfolder.vbs
echo Set objshell  = Nothing >> pppfolder.vbs
echo On Error Goto 0 >> pppfolder.vbs
echo End Function >> pppfolder.vbs
for /F "tokens=*" %%A in ('CSCRIPT.EXE //NoLogo pppfolder.vbs') do set result=%%A
del pppfolder.vbs
  

该目录将位于%result%中(如果单击了CANCEL按钮,则结果将为none,否则将是该目录)

Result

我希望我回答了你的问题。 ; ')

亚辛