Windows 无法将命令行参数传递给批处理文件
我有一个批处理文件,它打开到服务器的FTP连接并将文件放在指定位置 下面是我的Windows 无法将命令行参数传递给批处理文件,windows,batch-file,ftp,cmd,Windows,Batch File,Ftp,Cmd,我有一个批处理文件,它打开到服务器的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,那么在命令提示符下,它工作得很好 我的要求是将主机、用户名和密码作为参数传递 C:\Users\xxx\Desktop>f
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,那么在命令提示符下,它工作得很好
我的要求是将主机、用户名和密码作为参数传递
C:\Users\xxx\Desktop>ftp -i -s:ftpConnection.bat "HOST" "USER_NAME" "PASSWORD"
因此,我尝试使用%1%2和%3
,但这对我不起作用
像这样传递参数
C:\Users\xxx\Desktop>ftp -i -s:ftpConnection.bat "HOST" "USER_NAME" "PASSWORD"
也尝试了不带引号的操作,但结果相同,显示的是
在运行FTP服务器服务的计算机之间传输文件
(有时称为守护进程)。Ftp可以交互使用
FTP[-v][d][i][n][g][s:filename][a][a][x:sendbuffer][r:recvbuf
fer][b:asyncbuffers][w:WindowsSize][host]
遵循并尝试了一些文档,如和
他们建议使用set,我像下面一样尝试过,但结果是一样的
有谁能告诉我我做错了什么,或者有谁能指点我如何做到这一点
提前感谢。根据您的使用情况
set host=%1
set uname=%2
set passwd=%3
open %host%
%username%
%passwd%
如上图所示,您可以通过在两个%var name%之间括起来使用set变量
请根据您的使用情况尝试一下
set host=%1
set uname=%2
set passwd=%3
open %host%
%username%
%passwd%
如上图所示,您可以通过在两个%var name%之间括起来使用set变量
请根据您的使用情况尝试一下
set host=%1
set uname=%2
set passwd=%3
open %host%
%username%
%passwd%
如上图所示,您可以通过在两个%var name%之间括起来使用set变量
请根据您的使用情况尝试一下
set host=%1
set uname=%2
set passwd=%3
open %host%
%username%
%passwd%
如上图所示,您可以通过在两个%var name%之间括起来使用set变量
请试一试对不起,您使用的是一个文本文件,其中包含
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将处理的文本文件。很抱歉,您使用的文本文件包含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将处理的文本文件。很抱歉,您使用的文本文件包含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将处理的文本文件。很抱歉,您使用的文本文件包含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将处理的文本文件。按照上面的建议尝试,但没有区别。按照上面的建议尝试,但没有区别。按照上面的建议尝试,但没有区别。按照上面的建议尝试,但没有区别。