更新:现在是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.我不想安装额外的实用程序来实现这一点(虽然我发现有一些可以做很好的日期格式化).
使用Bash时,我可以将一个命令的输出放到另一个命令中,如下所示:
my_command `echo Test`
Run Code Online (Sandbox Code Playgroud)
会是一样的
my_command Test
Run Code Online (Sandbox Code Playgroud)
(显然,这只是一个非实际的例子.)
我只是想知道你是否可以批量做同样的事情.
我在批处理文件中有以下行(在旧的Windows 2000机器上运行):
7z a QuickBackup.zip *.backup
Run Code Online (Sandbox Code Playgroud)
如何将日期附加到QuickBackup.zip文件中.因此,如果我今天运行批处理文件,理想情况下,该文件将是QuickBackup20090514.zip.
有没有办法做到这一点?
我正在尝试编写一个批处理脚本,以安全的方式获取当前日,月和年(即独立于日期格式).不幸的是,我发现的所有互联网资源都提出了类似的建
SET CURRENT_DATE=%DATE: =0%
SET YEAR=%DATE:~-4%
SET MONTH=%DATE:~3,2%
SET DAY=%DATE:~5,2%
Run Code Online (Sandbox Code Playgroud)
如果我的日期格式为yyyy/mm/dd或yyyy-mm-dd,但如果格式为yy-mm-dd或其他格式,则无效.是否有安全的方式来获得年,月和日?
还有一个问题 - 是否可以知道日分隔符是什么(/在第一种情况下和-其他情况下).
我是unix人,我真的不喜欢在windows上工作。我向你寻求帮助。
我正在尝试在 microsoft windows cmd 中定期备份 mysql 数据库。这是我当前的脚本:
C:\xampp\mysql\mysqldump.exe -hlocalhost -uroot -ppass stp > V:\backup_3.2.2.6__%date:/=%.sql
Run Code Online (Sandbox Code Playgroud)
我希望文件名具有这样的结构:
backup_3.2.2.6__2015-06-02_10:25:35.sql
Run Code Online (Sandbox Code Playgroud)
哪里:
name__currentDate_currentTime.sql
Run Code Online (Sandbox Code Playgroud)
所以我只需要在文件名中添加当前时间即可。
请帮忙
以下将打印 Windows 批处理文件中的当前数据和时间:
for /f "tokens=2,3,4,5,6 usebackq delims=:/ " %%a in ('%date% %time%') do echo %%c-%%a-%%b %%d%%e
Run Code Online (Sandbox Code Playgroud)
我在这里找到了这个。
但是,如果放置在循环中,初始数据和时间将不断打印,并且不会更新以反映新时间。
如何修改它以反映当前时间并在循环内工作?
谢谢
我正在编写一个Windows批处理文件,batch file应该在特定文件夹中输出一个文件。我希望文件名写成如下:
filename-yyyymmdd.csv
Run Code Online (Sandbox Code Playgroud)
其中 yyyymmdd 代表当前日期。
我的batch file代码如下:
cd:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn
bcp "SELECT TOP 100 * FROM xxxx.dbo.xxxxx" queryout c:\test\csv\confirmed.csv -t, -c -S xxxx\xxxxx -U xxx -P xxxxxxxxxx
set mydate=%date:~10,4%%date:~4,2%%date:~7,2%
echo %mydate%
copy c:\test\csv\confirmed.csv c:\test\csvwithdates\confirmed-%mydate%.csv
Run Code Online (Sandbox Code Playgroud)
我得到以下文件名作为输出: confirmed-ay18.csv
期望的输出: confirmed-20180528.csv
我查看了以下问题,StackOverflow但我很难实施建议的答案:
在 Windows 批处理文件中以 YYYYMMDD 格式获取日期
我究竟做错了什么?
通过启动命令提示符或cmd /e:off使用setlocal disableExtensions(在批处理文件中)或通过注册表值排除它们 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions(通过将值设置为 0),称为“扩展”的功能将被禁用(默认情况下打开)。
这会带来哪些变化?
如何比较批处理文件中的2个日期?这个:
if %%newdate geq %olddate% _do smth_
Run Code Online (Sandbox Code Playgroud)
不起作用.
在这种情况下,我有一个
27.05.2013是大于 15.07.2013并且
14.07.2013是小于 15.07.2013
振亚
我正在尝试运行一个批处理文件,该文件运行可执行文件并将其输出重定向到日志文件。日志文件必须将日期和时间作为文件名。这是我正在使用的命令:
"%PROGRAMFILES%\PostgreSQL\9.4\bin\vacuumdb.exe" --username postgres --verbose --analyze --all > E:\Logs\VacuumDB\%date:~10,4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log 2>&1
Run Code Online (Sandbox Code Playgroud)
此命令在直接粘贴到 cmd 中时有效。日志文件按预期创建为“2015_06_25__11_20_46.log”。但是,粘贴到批处理文件中,然后在cmd中运行时,它不起作用。Cmd 对命令的解释如下:
"C:\Program Files\PostgreSQL\9.4\bin\vacuumdb.exe" --username postgres --verbose --analyze --all 8_21_42.log 1>E:\Logs\VacuumDB\2015_06_26_ 2>&1
Run Code Online (Sandbox Code Playgroud)
注意文件名是如何被截断的,时间现在被附加到命令参数而不是文件名中。所以显然命令失败了。
这肯定是非常简单的事情,但我还没有找到任何方法来解决这个问题。任何帮助是极大的赞赏。
谢谢!
batch-file ×9
windows ×8
cmd ×4
date ×4
backticks ×1
bash ×1
bcp ×1
command-line ×1
datetime ×1
filenames ×1
if-statement ×1
logging ×1
mysql ×1
sql-server ×1