问题从批处理文件创建文本文件

时间:2015-07-04 03:04:10

标签: batch-file text-files

我正在尝试创建一个文本文件,同时使用其中的变量名称:

mkdir logs
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)
set filename=build_%mydate%_%mytime%
gradlew build > I:\TNB_XPort_Redux\logs\%filename%x.txt

当我运行批处理文件时,我将其作为输出: Issue

如何将文件正确创建为文本文件?

编辑:我希望将文件命名为:build_date_time。 txt 而不是build_date_time

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法在您选择的路径中创建空白文本文件:

mkdir logs
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)
break>"I:\TNB_XPort_Redux\logs\build_%mydate%_%mytime%.txt"

这段代码会创建一个dir" logs"和一个空白文件" build_%mydate%_%mytime%.txt"在那个目录中。

或者,您可以像在示例中一样使用设置文件名变量的较长方法。

mkdir logs
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)
set filename=build_%mydate%_%mytime%
break>"I:\TNB_XPort_Redux\logs\%filename%.txt"

总而言之,他们都做同样的事情

答案 1 :(得分:0)

尝试

mkdir logs
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")
set "filename=build_%mydate%_%mytime%"
gradlew build > "I:\TNB_XPort_Redux\logs\%filename%.txt"

虽然在我的系统中我无法重现观察到的行为,但可以通过在时间戳之后插入空格来重新创建它。引号将阻止在行尾添加结束空格,并防止文件名中的空格出现问题。