【问题标题】:Unable to pass command line arguments to a batch file无法将命令行参数传递给批处理文件
【发布时间】:2014-09-25 06:03:16
【问题描述】:

我有一个批处理文件,它打开到服务器的 FTP 连接并将文件放在指定位置。

这是我的 ftpConnection.bat 文件的样子..

open HOST
FTP_USER_NAME
FTP_USER_PASSWD
cd TO_DIR
lcd TO_FILE_LOCATION
put THE_FILE
quit

如果我像这样运行它,从命令提示符 ftp -i -s:ftpConnection.bat 它工作正常。

我的要求是传递 HOST、USER_NAME 和 PASSWORD 作为参数

所以我尝试使用 %1 %2 and %3 但这对我不起作用。

像这样传递参数

C:\Users\xxx\Desktop>ftp -i -s:ftpConnection.bat "HOST" "USER_NAME" "PASSWORD" 

也试过不带引号,但结果是一样的,它正在显示

在运行 FTP 服务器服务的计算机之间传输文件 (有时称为守护程序)。 ftp可以交互使用。

FTP [-v] [-d] [-i] [-n] [-g] [-s:文件名] [-a] [-A] [-x:sendbuffer] [-r:recvbuf fer] [-b:asyncbuffers] [-w:windowsize] [host]

关注并尝试了一些文档,例如 How to pass multiple parameters in CMD to batch file Batch file command line arguments

他们建议使用 set,我尝试如下,但结果相同。

set host=%1
set uname=%2
set passwd=%3
open %1
%2
%3

谁能告诉我我做错了什么或任何指针来实现这一点。

提前致谢。

【问题讨论】:

    标签: windows batch-file ftp cmd


    【解决方案1】:

    抱歉,您使用的文本文件包含ftp 命令预期和解释的输入和命令。这不是一个 Windows 批处理文件,不能使用它的语法。

    要将所需数据用作调用中的参数,您需要一个批处理文件,该文件将从传递的参数生成 ftp 脚本

    @echo off
      setlocal enableextensions disabledelayedexpansion
    
      if "%~3"=="" goto :eof
    
      set "TO_DIR=......"
      set "TO_FILE_LOCATION=......"
      set "THE_FILE=........"
    
      > ftpScript (
          echo open %~1
          echo %~2
          echo %~3
          echo cd %TO_DIR%
          echo lcd %TO_FILE_LOCATION%
          echo put %THE_FILE%
          echo quit
      )
    
      ftp -i -s:ftpScript 
    

    现在,你有一个批处理文件(我们称之为doFTP.cmd),你可以调用它

    doFTP.cmd ftpserver userName pa$$word
    

    命令行中的参数存储在%1%2%3 变量中(%~1 是第一个参数,如果存在则不带引号)并在批处理文件中使用以生成( echo 命令被重定向到 ftpScript 文件)ftp 将处理的文本文件。

    【讨论】:

      【解决方案2】:

      根据你的使用情况

      set host=%1
      set uname=%2
      set passwd=%3
      open %host%
      %username%
      %passwd%
      

      您可以通过在两个 %var-name% 之间括起来来使用 set 变量,如上所示 请试一试

      【讨论】:

      • 按照上面的建议尝试过,但没有区别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 2015-08-25
      • 2018-06-20
      • 2013-08-30
      • 2010-09-06
      相关资源
      最近更新 更多