更新:现在是2016年我将使用PowerShell,除非它有一个非常引人注目的向后兼容原因,特别是因为使用区域设置问题date.请参阅@ npocmaka的/sf/answers/1385946551/
什么是Windows命令行语句我可以使用以我可以放入文件名的格式获取当前日期时间?
我希望有一个.bat文件,它将目录压缩到一个存档中,并将当前日期和时间作为名称的一部分,例如,Code_2008-10-14_2257.zip.有没有简单的方法可以做到这一点,独立于机器的区域设置?
我真的不介意日期格式,理想情况下它是yyyy-mm-dd,但任何简单都可以.
到目前为止,我已经有了这个,在我的机器上给了我Tue_10_14_2008_230050_91:
rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code
Run Code Online (Sandbox Code Playgroud)
我可以忍受这个,但它看起来有点笨重.理想情况下,它更简洁,并具有前面提到的格式.
我正在使用Windows Server 2003和Windows XP Professional.我不想安装额外的实用程序来实现这一点(虽然我发现有一些可以做很好的日期格式化).
什么是Linux shell命令相当于echo -n在输出结尾处抑制换行符的Linux shell命令?
想法是在循环内写入同一行.
如何轻松创建可以在程序的各个部分引用和使用的资源?
我的具体问题是我有一个NotifyIcon,我想根据程序的状态更改图标.一个常见的问题,但我长期以来一直在苦苦挣扎.
我想渲染(用于内部调试/信息)程序集的最后修改日期,因此我将知道何时部署了某个网站.
是否有可能通过反思得到它?
我得到这样的版本:
Assembly.GetExecutingAssembly().GetName().Version.ToString();
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似的东西 - 我不想打开物理文件,获取它的属性或类似的东西,因为我将在母版页中呈现它,并且不希望那种开销.
我正在尝试将一些代码生成模板连接到我的团队的自动构建过程.我们的SCM团队不希望在我们的构建机器上使用Visual Studio(我很难与之争论).
有没有办法在没有Visual Studio的情况下安装T4引擎?
我正在使用此问题中提到的自动构建版本控制(不是选定的答案,而是使用该[assembly: AssemblyVersion("1.0.*")]技术的答案).我在MVC 2中的Site.Master文件的页脚中执行此操作.我执行此操作的代码如下:
<div id="footer">
<a href="emailto:webmaster@foo.com">webmaster@foo.com</a> - Copyright © 2005-<%= DateTime.Today.Year.ToString() %>, foo LLC. All Rights Reserved.
- Version: <%= Assembly.GetEntryAssembly().GetName().Version.ToString() %>
</div>
Run Code Online (Sandbox Code Playgroud)
我得到的例外是Object reference not set to an instance of an object因为GetEntryAssembly()返回NULL.我的其他选择也不起作用.GetCallingAssembly()始终返回"4.0.0.0"并GetExecutingAssembly()始终返回"0.0.0.0".当我查看我的DLL时,一切都是我期望的版本控制.但我无法弄清楚如何访问它以显示在我的页脚!
是否有一些聪明的方法来获取dll构建/编译的日期和时间?
在部署应用程序时,我正在使用程序集版本编号和反射来检索和显示此信息.但在某些情况下,知道什么时候 dll实际编译而不是自动递增版本号会更方便.由于部署应用程序的方式,我认为dll文件本身的修改日期不可靠.
Dim assemblies = AppDomain.CurrentDomain.GetAssemblies
Dim assemblyName As String
Dim assemblyVersion As String
For Each assembly In assemblies
assemblyName = assembly.GetName.Name.ToString
assemblyVersion = assembly.GetName.Version.ToString
' How to get the date/time of the build??
' ...
Next
Run Code Online (Sandbox Code Playgroud)
有什么建议?
有没有的等效__DATE__和__TIME__C#中?
基本上我要做的是在C#应用程序中放置一些构建时间戳.
我在微软网站上看到的一种可能性是做以下事情:
Assembly assem = Assembly.GetExecutingAssembly();
Version vers = assem.GetName().Version;
DateTime buildDate = new DateTime(2000, 1, 1).AddDays(vers.Build).AddSeconds(vers.Revision * 2);
Console.WriteLine(vers.ToString());
Console.WriteLine(buildDate.ToString());
Run Code Online (Sandbox Code Playgroud)
但是,这仅适用于AssemblyInfo.cs中的版本为"1.0 .. ",而我们的版本不是.
可能重复:
显示构建日期
如何知道Windows何时启动或关闭?
为了我的目的,我正在编写一个C#可执行文件,它将计算从现在开始的时间和服务器上次重新启动的时间(分钟)的差异.
我现在正在做的是捕获和解析cmd - >"net stats server"的输出并创建一个新DateTime对象,然后将其DateTime.Now与一个TimeSpan对象进行比较.
如果不使用第三方下载,是否有更简洁的方法可以做到这一点?我很害怕并非所有"net stats server"的日期格式都是我期望的格式.
**编辑我的错,这是重复的,但对于我的解决方案的价值是使用这个:
float ticks = System.Environment.TickCount;
Console.WriteLine("Time Difference (minutes): " + ticks / 1000 / 60);
Console.WriteLine("Time Difference (hours): " + ticks / 1000 / 60 / 60);
Console.WriteLine("Time Difference (days): " + ticks / 1000 / 60 / 60 / 24);
Run Code Online (Sandbox Code Playgroud) c# ×5
.net ×4
datetime ×3
batch-file ×2
reflection ×2
windows ×2
asp.net ×1
asp.net-mvc ×1
cmd ×1
command-line ×1
date ×1
icons ×1
iso8601 ×1
newline ×1
resources ×1
t4 ×1
vb.net ×1
versioning ×1