0

我正在尝试验证输入对话框中给出的路径。

   "a = path to file p.e. d:\mydoc.txt (but can be every file)
   let a = inputdialog(docinput)

   while 1
    try
      read (a)
        catch /E484:/
        echo "The file doesn't exist"
        let a = inputdialog(docinput,a,"return") 
        if a == "return" 
          return
        endif
    endtry
   endwhile

我想使用read命令检查文件名是否存在。
但似乎read无法读取变量。
read必须是这样的:
read d:\mydoc.txt

1)如何读取变量?

如果read给出错误消息(E484(无法读取文件)),脚本必须返回到输入对话框。
我尝试在 while/endwhile 循环中使用 try/endtry 来执行此操作,但我还没有找到如何跳出循环。

2) 如果文件不存在,如何将脚本返回到输入对话框?

4

1 回答 1

1
  • 您必须使用变量中包含的文件:execute名::reada

    execute "read " . a
    
  • :read是该工作的错误工具,请改用filereadable()(或filewriteable(),取决于您要对该文件执行的操作):

    if filereadable(expand(a))
      " do something
    else
      " do something else
    endif
    

我无法理解你的第二个问题。

于 2013-10-03T13:25:18.090 回答