2013-07-29 27 views
1

尝试使用以下命令创建.txt文件并使用包含userinput变量和日期字符串的自定义文件名保存它。我可以将它命名为UserInput,但不包含其他元素(日期,自由文本)。使用文件名中的日期变量创建,保存文件

@echo off 
set /p UserInputPath= Filename for Client Log?: 
adb logcat > %DATE%_%UserInputPath%_ClientLog.txt 

回答

1

尝试增加报价:

“%DATE%_%UserInputPath%_ClientLog.txt”

0

试试这个:

>"%DATE:/=-%_%UserInputPath%_ClientLog.txt" adb logcat 
+0

谢谢。我把它放进去,但是现在当我运行批处理时,我得到了“访问被拒绝” – halcyon27

+1

这里给我敲响的警钟是用于用户输入的变量名。 'UserInputPath'可以邀请全路径名,包括驱动器。也许''%UserInputPath %% DATE:/ = - %_ ClientLog.txt“'会更好。 – Magoo

+0

是的,用户输入可能包含禁止的字符,如':/ \ <> | *?“'。 – Endoro

1

这是获取日期的稳健方法

@echo off 
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set dt=%%a 
set YYYY=%dt:~0,4% 
set MM=%dt:~4,2% 
set DD=%dt:~6,2% 
set HH=%dt:~8,2% 
set Min=%dt:~10,2% 
set Sec=%dt:~12,2% 

set stamp=%YYYY%-%MM%-%DD% 

set /p UserInputPath= Filename for Client Log?: 
adb logcat > "%stamp%_%UserInputPath%_ClientLog.txt"