相关疑难解决方法(0)

Powershell的获取日期:如何在变量中获得昨天的22:00?

对于检查,我需要昨天晚上10点的变量日期.

我得到昨天的日期和当前时间

$a = (get-date).AddDays(-1)
Run Code Online (Sandbox Code Playgroud)

但是我如何将时间操纵到22.00并将变量保留为Date-Object?

powershell

29
推荐指数
4
解决办法
9万
查看次数

cmd脚本中的日期算术

我需要编写一个脚本来将文件名从aDate.txt更改为bDate.txt,其中:

  • aDate是yyyymmdd格式的当前系统日期
  • bDate是当前系统日期 - 以yyyymmdd格式表示的1 .

我目前有:

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并将日=设定为新月的最后一天等等多年.

有任何想法吗?

scripting cmd date batch-file

11
推荐指数
1
解决办法
8万
查看次数

使用bat启动Powershell脚本

我有一个批处理文件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)

powershell

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

powershell ×2

batch-file ×1

cmd ×1

date ×1

scripting ×1