Batch file 批处理文件:保存&;负载
我有一个大问题。此应用程序应向用户询问一次他的姓名。它保存用户名,然后当他再次运行此应用程序时,应跳过第一阶段,变量“name”应具有文件扩展名为的名称。user,但它不起作用:/请帮助Batch file 批处理文件:保存&;负载,batch-file,load,save,exists,Batch File,Load,Save,Exists,我有一个大问题。此应用程序应向用户询问一次他的姓名。它保存用户名,然后当他再次运行此应用程序时,应跳过第一阶段,变量“name”应具有文件扩展名为的名称。user,但它不起作用:/请帮助 @echo off If NOT EXIST .settings md .settings cd .settings If NOT EXIST *.user goto abc pause If EXIST *.user set name=*.user cd .. pause goto welcome paus
@echo off
If NOT EXIST .settings md .settings
cd .settings
If NOT EXIST *.user goto abc
pause
If EXIST *.user set name=*.user
cd ..
pause
goto welcome
pause
:abc
cd ..
echo Hi! Welcome in my program!
set /p name=Tell me your name!
If NOT EXIST .settings md .settings
cd .settings
echo >>%name%.user
pause
:welcome
cls
echo Welcome %name%
pause
Other commands
编辑:暂停仅适用于我:)您只是将名称设置为字符串*.user。您需要解析文件名并仅提取第一部分 尝试: 另外,要创建一个空白文件,可以使用
Type nul > %name%.user
你想做什么还不是特别清楚 如果fred输入了他的名字,这一行:
echo >>%name%.user
将向文件fred.user
如果您希望文件.user
包含“fred”,那么您需要一个
echo %name%>.user
>.user echo %name%
(就个人而言,我会使用第二个)
如果随后要从文件.user
中读取用户名,则
set /p name=<.user
set/p name=>表示“附加到现有文件或创建新文件”
此方法也非常好,但我更喜欢第二种方法:D也谢谢!我确信我将来会使用它
set /p name=<.user
@ECHO OFF
SETLOCAL
IF EXIST .user (SET /p name=<.user) ELSE (SET /p name=Your name ?)
>.user ECHO %name%
ECHO name is %name%