【问题标题】:How to write a PowerShell script which auto increments a number by 1 every time it's run?如何编写一个每次运行时自动将数字加 1 的 PowerShell 脚本?
【发布时间】:2019-06-11 12:07:28
【问题描述】:

我正在寻找一个 PowerShell 脚本,当用户从他们的桌面单击时,它会将计数增加 1,保留记录,当用户下次单击该脚本时,它会从最后一个数字递增,格式为 000000。

所以当用户启动脚本时,它会变成 000001,下次它会变成 000002,000010...等等。

我已经尝试过以下方法,但它似乎不起作用,我不打算编写 shell 脚本。我也不确定如何保存上一次运行,所以下次它从最后一个数字递增。

$counter = 0;
$counter++

【问题讨论】:

  • 只需创建一个文件并在每次执行开始时读取它

标签: powershell scripting increment


【解决方案1】:

这里是一些创建文件和格式化数字的示例。请记住,前导零只能在字符串中使用。 (随意放置$counter = $counter++

$path = "D:\test\text.txt"
# Test if the file exists
if ( (Test-Path $path) ) {
    # read file
    $content = Get-Content $path
    # convert string to int
    $counter = [int]$content
}else{
    $counter = 0
}
$counter++
# create a string with leading zeros
$countString = "{0:d6}" -f ($counter)

# end of your script
# save to file
$countString | Out-File $path

"{0}" -f $var 将以特定的方式格式化变量。有关如何格式化变量的列表,请参阅here。向这样的字符串添加更多变量:"{0} , {1} , {2}" -f $var1,$var2,$var3

另一种方法是操作 .ps1 文件本身并将数字写入脚本文件中......但我不会真的推荐。

【讨论】:

  • 好像没有创建文件。
  • 尝试其他路径。在我的电脑上,我使用$countString | Out-File "D:\test\text.txt" 对其进行了测试
  • 现在可以了,我怎样才能让它在每次点击时增加数字。我添加了 $counter++ 但它只增加一次,保存它并且不再增加。我还可以询问我的知识 $countString = "{0:d6}" -f ($counter) 做什么吗?
  • @AdamKhan 在回答中添加了请求的信息。
  • 如果没有 000000 文件,它会保存一个文件,但随后运行它不会增加该值。
猜你喜欢
  • 2019-10-24
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-23
  • 2020-06-24
相关资源
最近更新 更多