我正在嘗試創建一個 .bat 檔案獲取當前作業日-1,所以如果是星期一,日期應該是星期五日期(當前日期 -3),如果是星期五,日期應該是星期四日期(當前日期 -1 )。我可以從 Powershell 獲取日期,但是當我嘗試通過減法獲取日期時,它給了我這個錯誤:
get-date 在這個時候是出乎意料的。
這是在 powershell 命令的最后一部分以粗體文本生成的:
if %WEEKDAY%==3 (for /f %%i in ('powershell $dataAtual=get-date;$dataAtual=$dataAtual.AddDays(-3); **get-date** $dataAtual') do set FX=%%i) else (set FX=%CURRENTDATE%)
echo %FX%
我試圖洗掉 get-date 所以它只列印$dataAtual的值,就像在 powershell 中一樣,但他們說:
$dataAtual was unexpected at this time
完整代碼:
for /f %%i in ('powershell get-date -f yyy.MM.dd') do set CURRENTDATE=%%i
echo %CURRENTDATE%
for /f %%i in ('powershell get-date %CURRENTDATE% -UFormat %%u') do set WEEKDAY=%%i
echo %WEEKDAY%
if %WEEKDAY%==3 (for /f %%i in ('powershell $dataAtual=get-date;$dataAtual=$dataAtual.AddDays(-3); get-date $dataAtual') do set FX=%%i) else (set FX=%CURRENTDATE%)
echo %FX%
(我知道上面代碼中的作業日 3 不是星期五,我現在只是在測驗)
uj5u.com熱心網友回復:
請參閱Theo's Comment,您可以將其寫入批處理檔案,如下所示:
@echo off
set psCmd="&{$dataAtual=(Get-Date).AddDays(-1); while (1..5 -notcontains $dataAtual.DayOfWeek) { $dataAtual = $dataAtual.AddDays(-1) }; get-date $dataAtual -f yyyy.MM.dd}"
Call :RunPS %psCmd% FX
Echo %FX%
pause & Exit
::----------------------------------------------------------------------
:RunPS <PassPSCMD> <RetValue>
@for /F "usebackq tokens=*" %%i in (`Powershell %1`) do set "%2=%%i"
Goto:eof
:: End of :RunPS function
::----------------------------------------------------------------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494375.html
上一篇:創建僅包含最近日期的新資料集
下一篇:日期之間的SQL總和
