首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能使用同一个Get-Date变量两次而不会得到错误的时间

在PowerShell中,Get-Date是一个用于获取当前日期和时间的命令。当你使用Get-Date命令时,它会立即获取当前的日期和时间,并将其存储在一个变量中。如果你尝试使用同一个变量两次,你将会得到相同的时间值,因为变量的值在第一次获取后就不会再更新。

这是因为Get-Date命令只会在第一次调用时获取当前的日期和时间,并将其存储在变量中。之后,无论你如何使用这个变量,它都不会再次获取最新的日期和时间。如果你想要获取最新的日期和时间,你需要再次调用Get-Date命令,并将结果存储在一个新的变量中。

以下是一个示例,说明为什么不能使用同一个Get-Date变量两次而不会得到错误的时间:

代码语言:txt
复制
$currentTime = Get-Date
Write-Host "当前时间:" $currentTime

# 一段时间后...

Write-Host "之前的时间:" $currentTime

在上面的示例中,第一次调用Get-Date命令时,它会获取当前的日期和时间,并将其存储在$currentTime变量中。然后,我们将$currentTime变量输出到控制台,显示当前的时间。

然而,在第二次输出$currentTime变量时,它仍然显示的是第一次获取的时间,而不是最新的时间。这是因为$currentTime变量的值在第一次获取后就不会再更新。

因此,如果你想要获取最新的日期和时间,你需要再次调用Get-Date命令,并将结果存储在一个新的变量中,如下所示:

代码语言:txt
复制
$currentTime = Get-Date
Write-Host "当前时间:" $currentTime

# 一段时间后...

$newTime = Get-Date
Write-Host "最新时间:" $newTime

在上面的示例中,我们在第二次获取最新的日期和时间时,使用了一个新的变量$newTime。这样,我们就可以得到最新的时间值。

总结起来,不能使用同一个Get-Date变量两次而不会得到错误的时间,因为变量的值在第一次获取后就不会再更新。如果你想要获取最新的日期和时间,你需要再次调用Get-Date命令,并将结果存储在一个新的变量中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

高级进阶:Azure DevOps搞定.NET Core编译版本号自增

而传统.NET Fx的编译系统不会改代码。这对于我来说是无法接受的,因为引入了不可控的因素。在多人团队本地build完竟然还要签入仅仅是更改了版本号的csproj文件,不是一种好方法。...并且它的默认规则,不是根据时间戳来增加版本号的,而是根据本机当前工程文件的版本。所以在多人协作的代码库里对导致版本混乱。因此我决定放弃MSBump,尽量用微软自家技术,解决自家问题。...我个人使用的规则是:主.次.距2000年1月1日的天数.幸运数字 其中要计算的是距2000年1月1日的天数。可以用Windows计算器按出来,也可以写程序算。...PowerShell 任务 我们要使用PowerShell计算版本号,并给刚才那个 buildNumber 变量赋值。所以,添加一个PowerShell任务,放在最前面。 ?...重跑编译,大功告成 触发一个CI/CD管线,可以看到日志中已经输出了正确的版本和参数。 ? 并且部署完后,也能得到正确的版本了: ?

1.3K70

Powershell命令与实例初识2

显示相关 PowerShell 版本信息的哈希表 变量操作 描述:为了管理变量PS提供了五个专门管理变量的命令 Get-Variable Set-Variable New-Variable Remove-Variable...“Constant”:常量一旦声明,在当前控制台不能更新。...“Private”:只在当前作用域可见,不能贯穿到其它作用域 “AllScope”:全局,可以贯穿于任何作用域 基础实例: #1.使用New-Variable命令实例 PS C:\test> New-Variable...#2.变量描述可以通过-description 添加变量描述,但是变量描述默认不会显示,可以通过Format-List 查看。...str).Description="变量的描述已更改;" ---- 时间日期 Get-Date 描述:时间日期对象可以直接利用其属性计算出当前年中的天数以及几天前和一天后的日期等等; Get-Date

64410
  • Powershell命令与实例初识2

    [TOC] 前言 人生莫大的痛苦,莫过于学习下面这些命令参数,但是为了更好的掌握它又不得不去了解; PS脚本语言语Linux上的Shell有一致之处,这也是我为什么脱离了Bat而进入PS坑的原因; 进程与服务...“Constant”:常量一旦声明,在当前控制台不能更新。...“Private”:只在当前作用域可见,不能贯穿到其它作用域 “AllScope”:全局,可以贯穿于任何作用域 基础实例: #1.使用New-Variable命令实例 PS C:\test> New-Variable...#2.变量描述可以通过-description 添加变量描述,但是变量描述默认不会显示,可以通过Format-List 查看。...str).Description="变量的描述已更改;" 时间日期 Get-Date 描述:时间日期对象可以直接利用其属性计算出当前年中的天数以及几天前和一天后的日期等等; Get-Date |

    1K40

    python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域

    如图所示: 要达到你所需要的效果,即得到 [0, [0, 1, 2], 2] 这个对象,你不能直接将 values[1] 指向 values 引用的对象本身,而是需要吧 [0, 1, 2] 这个对象...因为 3k 中 exec 由语句变成函数了,而在函数中变量默认都是局部的,也就是说 你所见到的两个 a,是两个不同的变量,分别处于不同的命名空间中,而不会冲突。...而dict/list/对象等可变对象,操作不会重建对象,可以通过dict['x']=y或list.append()之类的来修改,跟创建变量不冲突,不产生歧义,所以都不用显式global。...语句1 不能改变 list_a 的值,而 语句2 却可以?...5.5 陷阱:使用可变的默认参数 我多次见到过如下的代码: def foo(a, b, c=[]): # append to c # do some more stuff 永远不要使用可变的默认参数,可以使用如下的代码代替

    1.8K70

    记一次 C++ 核心语言标准中一个 issue 的发现和提交经历

    这个规则一般是服务于函数声明、变量声明或者类型声明的,即多次声明同一个函数,声明的其实都是同一个函数: // 例子:此代码是合法C++程序,能通过编译 void foobar();// 声明 void...两次 ee 声明的是同一实体为什么重要呢?...而前面一段已经说明了,两次 ee 声明,指向的是同一实体,也就是说这里「可能冲突」的规则并不适用,两次声明不冲突。 结论:枚举量重复定义不违反 C++ 标准!...由于 One-definition rule 并不限制枚举量的重复定义,而两次枚举量声明指向的是同一个实体,不会造成声明冲突,意味着一开始的示例代码: enum { ee, ee }; 其中重复的...总结 当然,对同一个名字进行多次枚举量定义肯定在逻辑上是错误的,每个枚举量都必须对应「一个」整型常量,每一个枚举量定义又会使得枚举量对应的常量相比上一个枚举量定义增1,允许同个名字定义两次枚举量的话,这两个规则就产生矛盾了

    52020

    Arduino+Avr libc制作Badusb原理及示例讲解 | 长文含视频

    partno的选项和programmer的选项是解析选定的avrdude.conf得到的,所以不选择avrdude.conf的话partno和programmer的下拉框将为空;端口号是通过注册表获取到的...当点击upload按钮或者dump按钮时,先利用编程方式实现复位操作(后面会解释怎么实现的),在短暂的暂停后使用CreateProcess执行avrdude.exe程序;而如果用户在executable...,因为我的那些参数就是根据这里显示的设置的)。...想利用arduino开发板制作有用的,或者扩展性强的badusb,需要理清以下逻辑: ①arduino开发板使用的主要是atmel厂商的微控制器,而atmel厂商的微控制器集成了SRAM,FlASH和EEPROM...而avrdude.exe烧录过程其实就是在复位时和arduino开发板的bootloader通信,所以只有在bootloader启动阶段利用avrdude.exe才能成功烧录。一定要把握好时间。

    1.5K50

    Swift入门: 常量和变量

    每个有用的程序都需要在某个时刻存储数据,在Swift中有两种方法:变量和常量。变量是一个可以随时更改其值的数据存储,而常量是一个可以设置一次且永远不会更改的数据存储。...所以,变量的值可以变化,而常量的值是常数——很简单,对吧? 拥有这两个选项可能看起来毫无意义,毕竟你可以只创建一个变量,然后再也不更改它——为什么需要将它设为常量?好吧,结果发现很多程序员都很震惊!...——编程不能做到百分百完美,我们会犯错误。 分离常量和变量的优点之一是Xcode会告诉我们是否犯了错误。...好吧,常量使用let关键字而不是var,因此您可以将第一行代码更改为let name而不是var name,如下所示: 图片发自简书 因此,常量是向Swift和您自己保证某个值不会改变的一个很好的方法,...如果尝试使用同一变量名两次,将出现错误,如下所示: var name = "韦弦zhy" var name = "Swift" 如果Playground在你的代码中发现错误,它会在一个红色的框中标记一个警告

    1.1K10

    2.PS编程入门基础语法

    # 方式3.采用 % 以及别名进行使用处理 1..5 | % { Write-Host -NoNewline "第{$_}次时间:"; Get-Date;Start-Sleep 1 } # 第...17:23:49 Tips : 从 PowerShell 版本 3.0 开始,可以使用 PSItem 而不是 。...PS > $arr=1..3 PS > $arr1=$arr # 1.两个变量指向同一个地址的数组(表示是相同的) PS > $arr1.Equals($arr) True # 2.一个新的数组不是两个变量指向同一个数组...如果要统一限制所有元素的类型,可是使用类型名和一对方括号作为数组变量的类型。 每当赋值时会自动类型检查, 如果目标数据类型不能转换成功,就会抛出一个异常。...,但在实际情况中可能会将不必要的输出误以为返回值,此时我们可以使用Write-Host或者Write-Debug命令只输出特定的步骤中的内容,而不作为返回值。

    12.6K60

    泪崩,中厂一面也要输了。。。

    如果多个键映射到同一个槽位,它们会以链表的形式存储在同一个槽位上,因为链表的查询时间是O(n),所以冲突很严重,一个索引上的链表非常长,效率就很低了。...当一个变量被声明为Volatile时,线程在读取该变量时会直接从内存中读取,而不会使用缓存,同时对该变量的写操作会立即刷回主内存,而不是缓存在本地内存中。...如果是两次握手连接,就无法阻止历史连接,那为什么 TCP 两次握手为什么无法阻止历史连接呢?...我先直接说结论,主要是因为在两次握手的情况下,服务端没有中间状态给客户端来阻止历史连接,导致服务端可能建立一个历史连接,造成资源浪费。...两次握手会造成资源浪费 即两次握手会造成消息滞留情况下,服务端重复接受无用的连接请求 SYN 报文,而造成重复分配资源。 为什么断开连接是四次挥手?

    15610

    攒了一个月的Android面试题及详细解答,年底准备起来,冲刺大厂单车变摩托!(上)

    而断开的话,因为之前两端是正常连接状态,所以第二步的时候不能保证B之前的消息已经发送完毕,所以不能马上告诉A要断开的消息。这就是连接为什么可以少一步的原因。 4)为什么连接需要三次,而不是两次。...正常来说,我给你发消息,你告诉我能收到,不就代表我们之前通信是正常的吗? 简单回答就是,TCP是双向通信协议,如果两次握手,不能保证B发给A的消息正确到达。...线程的工作内存中保存了该线程中用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。...可见性:多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 有序性:程序执行的顺序按照代码的先后顺序执行。 实际项目过程中,有用到多线程并发问题的例子吗?...,其他线程被阻塞住. volatile仅能使用在变量级别,synchronized则可以使用在变量,方法. volatile仅能实现变量的修改可见性,而synchronized则可以保证变量的修改可见性和原子性

    43620

    Java多线程编程-(12)-单例模式几种写法的错与对

    为什么会在多线程这里说道单利模式那?这是因为在多线程情况下不正确的使用单利模式会造成整个程序的错误执行,因此单利模式我们也应该坐下来细细研究一下!...,那么这里我们没有任何的代码调用getInstance()方法,很显然无法精确地控制instance创建的精确时间,如果代码如上所示的话,也是一种错误的方法。...看似简答的设计模式,如果不正确的使用,很难很精确的控制到我们想要的结果,有人要说了,既然这样我们以后不再“饿汉模式”代码里使用static变量不就OK了!...是的,是可以,但是如果我们使用“懒汉模式线程安全”的方式就可以很好的控制instance的创建时间,不会出现上述的调用static变量就创建了实例。...代码量确实比较多,并且难以理解,为什么使用volatile ,以及为什么是两次判空,这些都很难理解,并且在一些低版本的JDK还不能够保证执行的正确性,所以代码中也不推荐大家用,但作为一种思想还是有必要研究一下

    72620

    3.PS编程入门基础语法

    #实用的调用输出调试(而不像输出错误的信息) # (1) 采用.net对象的静态方法实用,使用Parse方法将一个字符串转换成DateTime类: [System.DateTime]::Parse("...,因为有的命令可能比较危险,例如错误地修改环境变量。...示例1.每一个Powershell命令都会返回一个对象,但是返回的对象不易操作(自动将对象转换成为可视化字符串) # 1.存储在$FileList变量中的并不是真实的对象,而是一个对象数组,数组可以通过索引访问得到真实的对象...当然最重要的是这些临时信息无论什么时候也不会混淆在返回值。 抑制错误信息 函数中的错误信息,也有可能作为返回值的一部分,因为默认这些错误信息会直接输出。...www.mossfly.com" #该进程不存在 } #错误信息不会输出 ErrorTest 但是上面的做法并不明智,因为这样可能错过其它错误提示。

    4.3K30

    操作系统概念第三章部分作业题答案

    大家好,又见面了,我是你们的朋友全栈君。 题目一: 使用下图所示的程序,说明LINE A的输出是什么。为什么?...这一点在我又加入了一个子进程的分支之后得到了验证,可以看到即便是同一个程序,两次执行,输出的顺序是不一样的: 题目二: 下面设计的优点和缺点分别是什么?分别从操作系统层面和用户层面来阐述。...在系统层次,使用异步通信的优点是可以使系统尽可能高效率的进行不同的对象进行通信;在用户层次,缺点是在发出信息后不能立刻得到结果,甚至可能因为某种错误的发生而不能得到结果,影响用户体验。...采用显示缓冲可能使用户在发送信息时被阻塞而等待一段时间,这是他的缺点。但在系统层面,这样只会使用一小部分内存空间,避免了系统资源的浪费,这是他的优点。...例如,如果提供的是5,fibonacci序列中的前5个数将由子进程输出。退出程序前,父进程调用wait()调用来等待子进程结束。执行必要的错误检查以保证不会接受命令行传递来的负数号码。

    51430

    前端day20-JS高级(递归和闭包)学习笔记

    递归会影响性能,每一次递归都会进栈容易造成栈溢出,而循环不会 1.2-递归应用场景1(累加和,阶乘) //1.求1-n之间的累加和 function...为什么要学习闭包 1.需求引入:想要在函数外部访问函数内部的变量 2.思考能不能直接获取:不能 原因:函数执行完毕之后局部变量会被系统回收 复习js作用域 全局作用域(全局变量):函数外面声明的变量,...可以在任何地方访问 局部作用域(局部变量):函数里面声明的变量,只能在函数里面访问 3.继续思考,使用return返回这个变量 无法实现需求 因为每一次调用函数都会重新声明一个新的变量,并不是同一个 4...b.在闭包函数中: 返回你想要访问的变量 c.在外部函数中 : 返回闭包函数 2.闭包语法注意点 如果希望得到同一个变量...person动态赋值给window的属性 /*不会在沙箱内部访问全局变量 1.破坏封装性 2.避免代码压缩错误 (以后开发代码会压缩成一行

    1.3K01

    如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全

    ---- 不确定性 像并发集合一样,如 ConcurrentDictionary、ConcurrentQueue,其设计为线程安全,于是它的每一个对外公开的方法调用都不会导致其内部状态错误...无论写上面哪一段代码,都面临着问题: 此刻调用的那一句话得到的任何结果都仅仅只表示这一刻,而不代表其他任何代码时的结果。...而后者,此时访问得到的字典数据,和下一时刻访问得到的字典数据将可能完全不匹配,两次的数据不能通用。...另一个例子,WeakReference 弱引用对象的管理也是在一个方法里面可以获取到一个绝对确定的状态,而避免使用方进行两次判断: 1 2 3 4 if (weak.TryGetTarget(out...,这里就可以退出了; 在 lock 环境中发现 _isRunning 字段而非变量为 0 则说明实际上是没有任务在跑的(刚刚判断为 1 只是因为这两次判断之间,并发的任务刚刚在结束的过程中),于是需要跟一开始判断为

    17320

    Linux之进程控制

    那么给父进程返回子进程的pid,给子进程返回0,可以很方便的区分父子进程。 同一个变量,为什么会有两个不同的值呢?...因为成功只有一种情况,而失败的情况很多,因此,一般情况下0表示执行成功,非0表示执行失败。非0的数字不同,所表示的错误不同。...exit会主动刷新缓冲区,而_exit不会主动刷新缓冲区,这是因为缓冲区所在的位置。...) 五、进程替换 进程替换,就是在原进程执行到一定时间是,将原进程替换成磁盘中指定的一个新的进程,然后去执行新的进程(原进程剩余部分不会执行)。...,不用使用可变参数); p(path):自动搜索环境变量(PATH); e(env):表示自己维护环境变量。

    19920

    The operator or administrator has refused the request.操作员或系统管理员拒绝了请求(0x800710E0)

    我甚至尝试过使用ISO放在数据盘(系统盘从50G扩容到100G留够50G剩余空间)就地升级,发现这个问题并不会因为升级系统而消失。 为啥说是bug?...,正因为没有按预期时间执行才报的0x800710E0,显示的那个错的时间就是系统判定计划任务已错过、做那个判断时的时间点,自然那个时间点没有执行计划任务。...为什么首次执行成功了,一开始也显示0x0了,但机器重启后过了段时间刷新成错的时间且显示了标题的报错,是同一原因,是开机的系统时间异常导致计划任务的执行状态判断出现异常。...Sort-Object -Property TimeCreated Get-WinEvent -FilterHashtable @{logname='System';id=@(6005,12);StartTime=(Get-Date...经过对比发现: 1、删掉RealTimeIsUniversal的话,重启机器起来后到windows time服务未就绪期间的系统时间是北京时间,东八区的情况下,不会触发这个bug,非东八区会触发这个bug

    44210

    解析java泛型(二)

    有时我们也称通配符为更加简洁的类型变量的限定。接下来我们看看使用通配符如何声明一个泛型方法。...extends Double>主要用于实例化类型参数,声明在类型变量之前,简化了泛型方法的声明。所以,凡是可以由通配符实现的都可以使用类型限定来实现,因为通配符是简化了的类型限定。...,但是由于类型擦除导致父类和子类继承了同一个接口,也就是说子类两次继承了同一个接口类型,这在java中是不允许的。      ...最后我们看看泛型中的数组问题,如果我告诉你泛型是不能创建数组的,你能想到原因么?下面我们就从为什么泛型中不能创建数组来看看泛型的一些细节问题。      首先我们先假设泛型是可以创建数组的。...最后,由于本篇文章是博主自学时查阅书籍和博客学习的笔记和总结,如有错误,还望大家指出!

    952100

    JS进阶:作用域和作用域链

    ); // logs 'Hammad' JS 的初学者经常需要花点时间才能习惯变量提升,而如果不理解这种特有行为,就可能导致 bug 。...因为 let 不能在同一作用域内重复声明一个已有标识符,此处的 let 声明就会抛出错误。但如果在嵌套的作用域内使用 let 声明一个同名的新变量,则不会抛出错误。...也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是 10。 如果使用let,声明的变量仅在块级作用域内有效,最后输出的是 6。...如下代码中,console.log(a)要得到a变量,但是在当前的作用域中没有定义a(可对比一下b)。当前作用域没有定义的变量,这成为 自由变量 。...自由变量的值如何得到 —— 向父级作用域寻找(注意:这种说法并不严谨,下文会重点解释)。

    2.6K20
    领券