string - 从文本文件中的 1 行设置多个变量
问题描述
我正在使用 sqlcmd 将 3 个日期导出到一个临时文件,所有 3 个日期都在一行中,我需要将它们分开,它们的格式与[YYYY-MM-DD HH:MM:SS.000]
每个日期相同,因此文本文件中的行如下所示:
[YYYY-MM-DD HH:MM:SS.000] [YYYY-MM-DD HH:MM:SS.000] [YYYY-MM-DD HH:MM:SS.000]
set /p date=< %tmp%
setlocal enabledelayedexpansion
set st=%date%
set d1=!st:~0,19!
set d2=!st:~24,43!
set d3=!st:~48,67!
echo Date1 [%d1%]
echo Date2 [%d2%]
echo Date3 [%d3%]
setlocal disabledelayedexpansion
当我运行它时,它应该[YYYY-MM-DD HH:MM:SS]
为每个日期输出,这适用于第一个日期。
第二个日期输出为[YYYY-MM-DD HH:MM:SS.000 YYYY-MM-DD HH:MM:SS.000]
,第一组是第二个日期,第二个是第三个日期。
第三个日期是输出,即使字符计数在几秒后结束,也会[YYYY-MM-DD HH:MM:SS.000]
添加。.000
解决方案
通过使用您现在使用的相同文件,但通过将变量更改为%mytmp%
由于%tmp%
是保留的系统变量:
@echo off
set "mytmp=C:\path to temp\file.txt"
for /f "usebackq tokens=1,3,5" %%a in ("%mytmp%") do echo %%a %%b %%c
要像在示例中一样使用它们(无需设置变量):
@echo off
set "mytmp=C:\path to temp\file.txt"
for /f "usebackq tokens=1,3,5" %%a in ("%mytmp%") do (
echo Date1 [%%a]
echo Date2 [%%b]
echo Date3 [%%c]
)
推荐阅读
- javascript - Javascript通过正则表达式规则删除所有字符
- laravel - 在 cloudcreativiy/json-api 中添加查询 - laravel
- laravel - Laravel - 试图获取非对象的属性文本
- ios - 如何将 AVAsset 转换为 CMSampleBuffer 帧?
- javascript - 如何在条形图js的标题内添加切换
- python - Python 3 中的 ModuleNotFound seaborn
- python-3.x - 我想从列表中的函数中偷运一个整数而不更改其元素或增加内存使用量
- mysql - Sequelize 如何在查询中格式化 sequelize.literal('CURRENT_TIMESTAMP')?
- django - 更新 django 表单而不提示用户输入他们的 ID
- wordpress - WordPress wpbakery 默认情况下,帖子中的链接会打开一个非活动选项卡列表