在命令行批处理文件中使用变量
use variable in command line batch file
我在批处理文件中使用以下命令:
winscp sitename /command "get /filename.160313.tgz q:\localfolder\"
使用winscp程序下载文件。
我想做的是根据今天的日期自动生成“160313”。
如何用这样的变量替换 160313
?
C:\Users\User>echo %date:/= %
Sun 13 03 2016
或没有空格
set var=%date:/=%
否则你可以使用子字符串提取
set var=%date:~-4%
这一年。参见 set /?
。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
echo %YY%%MM%%DD%
winscp sitename /command "get /filename.%YY%%MM%%DD%.tgz q:\localfolder\"
WinSCP 有自己的 syntax for generating timestamped names:
WinSCP.com /command ... "get /filename.%%TIMESTAMP#YYMMDD%%.tgz q:\localfolder\"
我在批处理文件中使用以下命令:
winscp sitename /command "get /filename.160313.tgz q:\localfolder\"
使用winscp程序下载文件。
我想做的是根据今天的日期自动生成“160313”。
如何用这样的变量替换 160313
?
C:\Users\User>echo %date:/= %
Sun 13 03 2016
或没有空格
set var=%date:/=%
否则你可以使用子字符串提取
set var=%date:~-4%
这一年。参见 set /?
。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
echo %YY%%MM%%DD%
winscp sitename /command "get /filename.%YY%%MM%%DD%.tgz q:\localfolder\"
WinSCP 有自己的 syntax for generating timestamped names:
WinSCP.com /command ... "get /filename.%%TIMESTAMP#YYMMDD%%.tgz q:\localfolder\"