Logging 使用命令行更改文件名和位置

Logging 使用命令行更改文件名和位置,logging,command-line,Logging,Command Line,因此,我目前正在运行一个程序,它将一个html文件输出到一个静态位置/名称,我想保留所有这些文件,基本上是一个日志 如何将该文件的名称更改为不同的、唯一的名称,并可能通过命令行将其位置更改为日志文件夹。我想在文件名中添加一个时间戳,但我不知道该怎么做,这就是我来这里的原因 编辑:我正在Windows Server 2003上执行此操作。因此,它将位于cmd.exe shell中。我通过CC.NET运行这个程序,这样我就可以轻松地运行一个包含命令的批处理文件。CC.NET项目每次在同一位置构建一个

因此,我目前正在运行一个程序,它将一个html文件输出到一个静态位置/名称,我想保留所有这些文件,基本上是一个日志

如何将该文件的名称更改为不同的、唯一的名称,并可能通过命令行将其位置更改为日志文件夹。我想在文件名中添加一个时间戳,但我不知道该怎么做,这就是我来这里的原因

编辑:我正在Windows Server 2003上执行此操作。因此,它将位于cmd.exe shell中。我通过CC.NET运行这个程序,这样我就可以轻松地运行一个包含命令的批处理文件。CC.NET项目每次在同一位置构建一个同名的HTML文件,因此它会覆盖旧文件

所以我想移动旧的并重命名它,这样我就不会在将它们移动到其他位置时遇到同样的覆盖问题


简短而简单:如何在windows命令shell中获取文件、移动文件、对其进行唯一重命名(时间戳?)。

在Bash中,您可以执行类似以下操作:

#!/bin/bash

FILE=$(date +%Y-%B-%d_%H:%M:%S)  # FILE will contain `2009-June-18_20:17:13'
mv OLD_FILE, FILE

或者,只需使用自1970年以来经过的秒数:
date+%s

在Bash中,您可以执行类似的操作:

#!/bin/bash

FILE=$(date +%Y-%B-%d_%H:%M:%S)  # FILE will contain `2009-June-18_20:17:13'
mv OLD_FILE, FILE

或者,只需使用自1970年以来经过的秒数:
date+%s

最简单的方法是使用%RANDOM%-例如:

ren foo.txt foo-%RANDOM%.txt
您可能会发疯,使用两个随机数来减少冲突的可能性(或者只编写一个简单的错误处理循环)-例如:

如果确实需要时间,另一种选择是可以解析出%TIME%环境变量。我不知道这在不同的地区是如何工作的,当系统时间改变时,您可能会有重复值的风险。。。但以下是理解它的过程:

首先看看:

> echo %TIME%
有点像:

11:16:19.74

让我们把11点16分调到“1116”

我们要做的是通过指示变量中的开始点和停止点来拉出子字符串。你可以一直到百分之一秒,也就是说,你可以得到:


11161974执行此操作的最简单方法是使用%RANDOM%,例如:

ren foo.txt foo-%RANDOM%.txt
您可能会发疯,使用两个随机数来减少冲突的可能性(或者只编写一个简单的错误处理循环)-例如:

如果确实需要时间,另一种选择是可以解析出%TIME%环境变量。我不知道这在不同的地区是如何工作的,当系统时间改变时,您可能会有重复值的风险。。。但以下是理解它的过程:

首先看看:

> echo %TIME%
有点像:

11:16:19.74

让我们把11点16分调到“1116”

我们要做的是通过指示变量中的开始点和停止点来拉出子字符串。你可以一直到百分之一秒,也就是说,你可以得到:


11161974

如果你想要一个好的答案,你需要提供更多的细节。例如,您使用的是什么操作系统?你是如何运行这个程序的?这是你制作的程序,还是第三方程序?如果你想得到一个好的答案,你需要提供更多的细节。例如,您使用的是什么操作系统?你是如何运行这个程序的?这是你自己制作的程序,还是第三方程序?真是妙计!只是用MOVE代替了ren,还向%date%添加了相同的逻辑,我得到了我想要的:)。就这么做了!只是使用了MOVE而不是ren,还向%date%添加了相同的逻辑,我得到了我想要的:)。