Batch file 批处理文件:保存&;负载

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

我有一个大问题。此应用程序应向用户询问一次他的姓名。它保存用户名,然后当他再次运行此应用程序时,应跳过第一阶段,变量“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
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%