从批处理文件创建文本文件的问题
Issue creating a text file from a batch file
我正在尝试创建一个文本文件,其名称中包含一个变量:
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
当我 运行 批处理文件时,我将其作为输出:
关于如何将文件正确创建为文本文件的任何想法?
编辑:我希望将文件命名为:build_date_time.txt 而不是 build_date_time
您可以使用以下方法在您选择的路径中创建一个空白文本文件:
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"
这段代码将创建一个目录 "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"
总而言之,他们都做同样的事情
试试
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"
虽然在我的系统中我无法重现观察到的行为,但可以通过在时间戳后插入 space 来重新创建。引号将防止在行尾包含结尾 spaces 以及文件名中出现 spaces 时的问题。
我正在尝试创建一个文本文件,其名称中包含一个变量:
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
当我 运行 批处理文件时,我将其作为输出:
关于如何将文件正确创建为文本文件的任何想法?
编辑:我希望将文件命名为:build_date_time.txt 而不是 build_date_time
您可以使用以下方法在您选择的路径中创建一个空白文本文件:
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"
这段代码将创建一个目录 "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"
总而言之,他们都做同样的事情
试试
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"
虽然在我的系统中我无法重现观察到的行为,但可以通过在时间戳后插入 space 来重新创建。引号将防止在行尾包含结尾 spaces 以及文件名中出现 spaces 时的问题。