我刚刚编写了一个脚本来上传重要文件,但我的电脑上有多个用户,我想让它上传正在使用该程序的用户。所以就像在 cmd 中一样,我尝试做这样的事情
upload.bat在这里
@echo off
ftp -s:%~dp0Upload.ftp
pause
upload.ftp 在这里
open (ftp server name)
(ftp server user-name)
(ftp server password)
prompt
bin
mput c:\user\%USERNAME%\importantfiles
bye
但这让我失望了,所以现在我问你......
如何将目录设置为程序用户的用户名?
答案1
该ftp
命令似乎不支持环境变量完全没有;考虑动态创建 FTP 脚本。下面是一个示例脚本,主要借鉴自注意事项:
;@echo off
;(for /f "usebackq delims=" %%A in ("%~f0") do call echo.%%A)>"%temp%\%~n0.ftp"
;ftp -i -s:"%temp%\%~n0.ftp"
;goto:EOF
open example.com
username
password
!:--- FTP commands below here ---
prompt
bin
mput %userprofile%\importantfiles
笔记使用%userprofile%
而不是自己构建路径,因为可能会出现不同的错误:
- 您有拼写错误,例如
C:\User
而不是C:\Users
。 - 文件夹名称与用户帐户名称不匹配。
- Windows 未安装在
C:
驱动器/分区中。
怎么运行的
此批处理执行了批处理中嵌入的 FTP 脚本。FTP 脚本中的所有变量都将被解析。
这为了循环将 FTP 脚本提取到临时文件中。它回声命令正在称呼对每一行进行编辑以解决变量。
变量可以在 FTP 脚本中使用,方式与批处理脚本相同,包括任何字符串操作以及命令行参数
%1
%2
%~n0
%*
等等。所有批处理行都以分号开头,以便它们将被忽略为了循环。分号是为了命令。
来源:FTP - 解析环境变量
参考
答案2
您必须使用全部大写%USERNAME%
。