• 2

請教一個用批次指令抓前一日日期當輸出檔名的問題

echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i
for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j
for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k
if %m% LSS 9 set m=0%m%
if %d% LSS 9 set d=0%d%
echo %y%%m%%d%
==========================================
結果 2015 06 14<-------中間會跑出空格



echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set dd=%%i%%j%%k
echo %dd%
==========================================
結果 2015614,月份的前置0沒辦法補

請高手們指導一下,感謝(PS:指令是GOOGLE來的,不是小弟自己想出來的)
2015-06-15 9:53 發佈
文章關鍵字 問題 指令
Dim dt, yesterday
dt = DateAdd("d", -1, Date)
yesterday = Right(Year(dt),4) & Right("0" & Month(dt),2) & Right("0" & Day(dt),2)
Wscript.Echo yesterday

slash410 wrote:
Dim dt, yesterdaydt...(恕刪)

直接存成批次檔,跑出來都是錯誤
===================================================================
F:\>Dim dt, yesterday

'Dim' 不是內部或外部命令、可執行的程式或批次檔。

F:\>dt = DateAdd("d", -1, Date)
'dt' 不是內部或外部命令、可執行的程式或批次檔。

F:\>yesterday = Right(Year(dt),4) & Right("0" & Month(dt),2) & Right("0"
& Day(dt),2)
'yesterday' 不是內部或外部命令、可執行的程式或批次檔。
'Right' 不是內部或外部命令、可執行的程式或批次檔。
'Month' 不是內部或外部命令、可執行的程式或批次檔。
'Right' 不是內部或外部命令、可執行的程式或批次檔。
'Day' 不是內部或外部命令、可執行的程式或批次檔。

F:\>Wscript.Echo yesterday
'Wscript.Echo' 不是內部或外部命令、可執行的程式或批次檔。

F:\>echo
ECHO 已啟動。

wychen57 wrote:
直接存成批次檔,跑...(恕刪)


存成.vbs


slash410 wrote:
存成.vbs...(恕刪)


感謝您的指導,但小弟對VBS不懂,所以把您的程式存成VBS後,怎麼套用到批次檔裡,然後變成檔名變數供批次檔輸出特定檔名使用?還煩請指點,感謝

ex: copy f:\yyyymmdd.txt g:\

wychen57 wrote:
感謝您的指導,但小...(恕刪)

Dim dt, yesterday
Dim fso, file
dt = DateAdd("d", -1, Date)
yesterday = Right(Year(dt),4) & Right("0" & Month(dt),2) & Right("0" & Day(dt),2)
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("c:\"& yesterday &".txt", True)
file.WriteLine("Hello " &yesterday)
file.Close

wychen57 wrote:
請教一個用批次指令抓前一日日期當輸出檔名的問題

你的 OS 是 Windows ?
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4

plusv wrote:
你的 OS 是 Windows...(恕刪)


測試環境win7,實際上機環境win server 2008

試看看

自已再加一下你要的部份
我在 xp 2003 2008 2008r2 win7 win8
都用過

set day=%date:~8,2%
set /a day=day-1
set filename = %date:~0,4%%date:~5,2%%day%

LifeFox wrote:
試看看

自已再加一下你要的部份
我在 xp 2003 2008 2008r2 win7 win8
都用過

set day=%date:~8,2%
set /a day=day-1
set filename = %date:~0,4%%date:~5,2%%day%


順便請教大家,如果我在批次檔裡已經成功把檔名設成變數,要上傳SFTP(例如winscp),要怎麼打成一串指令,下列的命令無法成功3

c:\winscp\winscp.com /command "option batch abort" "option confirm off" "open sftp://user:PASSWORD@abc.com/" "put %%filename%%.csv /user/" "exit"
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?