对于检查,我需要昨天晚上10点的变量日期.
我得到昨天的日期和当前时间
$a = (get-date).AddDays(-1)
Run Code Online (Sandbox Code Playgroud)
但是我如何将时间操纵到22.00并将变量保留为Date-Object?
我需要编写一个脚本来将文件名从aDate.txt更改为bDate.txt,其中:
我目前有:
set yy=%date:~6,2%
set mm=%date:~3,2%
set dd=%date:~0,2%
if "%date:~6,1%"==" " set yy=0%yy:~1,1%
if "%date:~3,1%"==" " set mm=0%mm:~1,1%
if "%date:~0,1%"==" " set dd=0%dd:~1,1%
SET sys_date=20%yy%%mm%%dd%
ECHO %sys_date%
REM still have to do this bit properly
SET sys_date_yesterday=%sys_date%a
move %sys_date%.txt %sys_date_yesterday%.txt
Run Code Online (Sandbox Code Playgroud)
但我不知道如何做日期-1事情(除了长啰嗦)从当天减去1,如果是= 0然后从月中减1并将日=设定为新月的最后一天等等多年.
有任何想法吗?
我有一个批处理文件test.bat来启动一个PowerShell脚本:
@pushd "C:\myscripts"
powershell .\test.ps1 arg1 "arg2 with space" arg3
@popd
Run Code Online (Sandbox Code Playgroud)
脚本test.ps1(位于C:\ myscripts)是一个非常简单的脚本:
# just print out the arguments
Write-Output ("args count: {0}" -f $args.length)
$args
Run Code Online (Sandbox Code Playgroud)
然后我尝试启动test.bat.我应该将三个参数传递给ps1,但我得到以下结果:
args count:5 arg1 arg2,空格arg3
我在脚本中的预期,args [0]应该是arg1和args [1]应该是"arg2 with space"而args3 [2]应该是arg3.我无法理解为什么脚本实际上得到5个参数.
如何将cmd或batch中的参数传递给powershell,就像我预期的那样?像这样:
args count: 3
arg1
arg2 with space
arg3
Run Code Online (Sandbox Code Playgroud)