我有一个输出文件的批处理脚本,我试图确保每次执行脚本时,都不会覆盖现有文件,所以我试图在其上添加时间戳.
目前我有这个:
set stamp=%DATE:/=-%_%TIME::=-%
Run Code Online (Sandbox Code Playgroud)
但如果时间是1-9 AM,它会给出类似的结果:
13-06-2012_ instead of a full 13-06-2012_12-39-37.28
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我正在使用Windows 7,并且echo %date% %time%命令行窗口中的输出是(我的'短日期'时钟格式设置为显示3个字母的月份):
03-Sep-12 9:06:21.54
Run Code Online (Sandbox Code Playgroud)
编辑:我现在一直使用以下时间戳,效果很好.
set timestamp=%DATE:/=-%_%TIME::=-%
set timestamp=%timestamp: =%
Run Code Online (Sandbox Code Playgroud)
它产生像时间戳:18-03-2013_13-37-43.26,通过更换/和:在%TIME%和%DATE%,然后剥离空格.在我原来的问题中,空白是问题,真的.
我该如何正确地做到这一点.我正在尝试将mysqldump生成的sql文件命名为当前日期和时间.我已经在这个网站上进行了一些研究,并在这里找到了一个代码:如何在Windows命令行上以适当的格式获取当前日期时间,以便在文件名中使用?
试图将它与我当前的代码混在一起,我想出了这个.该文件被命名为当前日期和时间,但它只有一个1kb文件,并且不会生成.sql文件.它应该是一个7 kb的sql文件.
@For /f "tokens=2-4 delims=/ " %%a in ('date /t') do @(set mydate=%%c-%%a-%%b)
@For /f "tokens=1-2 delims=/:" %%a in ('time /t') do @(set mytime=%%a%%b)
@echo mydate= %mydate%
@echo mytime= %mytime%
mysqldump -u root -p --add-drop-table --create-options --password= onstor >c:\%mydate%_%mytime%.sql
Run Code Online (Sandbox Code Playgroud)
更新 我认为mysqldump命令没有问题,因为当我这样做时它运行良好.下面的代码只使用日期作为其文件名.
@For /F "tokens=2,3,4 delims=/ " %%A in ('Date /t') do @(
Set Month=%%A
Set Day=%%B
Set Year=%%C
)
@echo DAY = %Day%
@echo Month = %Month%
@echo Year = %Year%
mysqldump -u root --add-drop-table --create-options --password= …Run Code Online (Sandbox Code Playgroud) 项目向前移动,我可以看到为什么创建.bat文件来做事情会让人上瘾!我现在可以定期保存somefile.txt,然后通过添加时间和日期重命名somefile.txt来创建一个唯一的文件名
ren somefile.txt somefile_%time:~0,2%%time:~3,2%-%date:~-10,2%%date:~3,2%%date:~-4,4%.txt
Run Code Online (Sandbox Code Playgroud)
例如,上面的代码刚刚重命名somefile.txt为somefile_1317_13022011.txt (1317hrs on 13th February 2011)
我跑了
ren somefile.txt somefile_%time:~0,2%%time:~3,2%-%date:~-10,2%%date:~7,2%%date:~-4,4%.txt
Run Code Online (Sandbox Code Playgroud)
昨天,它成功运行到午夜,然后崩溃(语法错误)虽然它保存为日期(2011年1月12日)的12012011而不是正确的日期12022011.
当前版本是否会在午夜过后?我对英国与美国的日期格式混淆了吗?
你好,我有一个批处理文件,如下所示:
if %day%==monday, tuesday, wednesday, thursday, friday (
goto yes
) else (
goto no
)
Run Code Online (Sandbox Code Playgroud)
现在我知道第一行不起作用.
我真正想要发生的事情:
它会自动检查它是哪一天.如果是周一到周五,则必须转到"是",否则(周六/周日)转到"否".
这该怎么做?
我有一个批处理文件,可以从Web服务器通过FTP传输CSV文件。我只需要下载最新的CSV文件。
我怎么做?
这是我到目前为止的内容:
open 44.44.44.444
username
password
CD /Client/ABCCompany/
get *.csv
quit
close()
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)
我在这里找到了这个。
但是,如果放置在循环中,初始数据和时间将不断打印,并且不会更新以反映新时间。
如何修改它以反映当前时间并在循环内工作?
谢谢
我正在写一个批处理脚本,我需要unix时间.这在linux下很容易,但我无法弄清楚如何在windows中执行此操作.
我有一个使用MySQL数据库的项目.我想每天备份数据库,所以我使用这个:
mysqldump -h host -u user -p password database > 'location.sql'
Run Code Online (Sandbox Code Playgroud)
我希望文件以时间戳命名,即:
今天该文件将被命名为something-07-05-2014 08-00-00
明天将,something-08-05-2014 08-00-00
如何使用导出的文件名附加格式化的时间戳?
在批处理文件中,我需要从具有今天日期的文件夹中获取文件.
问题是我无法获得批处理日期命令以返回正确的格式.
我有这个:echo%date:/ = - %
但这总是会返回例如:Fri 06-20-2014
刚回来的正确要求是什么:06-20-2014
看着各处都找不到.
谢谢!
batch-file ×7
cmd ×3
windows ×3
bash ×2
command-line ×2
date ×2
mysqldump ×2
add ×1
filenames ×1
format ×1
ftp ×1
goto ×1
powershell ×1
time ×1
timestamp ×1