【发布时间】:2019-11-28 07:27:52
【问题描述】:
它应该如何工作/应该做什么:
在 C:\Users\RandomUser/Game 我想替换 C:\Users\RandomUser/Game/ConsoleVariables.ini 中的文件。 为此,用户应准备一个包含不同 ini 文件的文件夹,并且该路径将在 .bat 脚本中进行硬编码。 运行脚本后,它将计算在硬编码路径中找到了多少个 .ini 文件(有效),并在 cmd 中显示它们,文件后面带有从 1 到 n 的数字,以便用户看到按下哪个数字来选择相应的文件。 CMD-Screenshot
如果用户输入一个数字(验证检查会很好),游戏位置的原始 .ini 文件应该被删除并被他选择的 .ini 文件替换,并且复制的 ini 文件应该重命名为 ConsoleVariables。 ini(文件将被复制,因此它不会在文件夹中消失,因此可以重新完成)。
我的工作: 1) 循环遍历所有ini文件并显示它们后面的数字从1到n 2) 我知道如何复制/粘贴文件
缺少什么: 1)获取用户输入(数字)并根据输入复制相应的文件(不确定如何将用户输入循环/映射到实际的ini文件,因此1实际上绑定到第一个.ini文件等等) 2) 将复制的文件重命名为 ConsoleVariables.ini 但不要更改原始文件的名称
@echo off
set iniFolder=C:\Users\RandomUser\Inis
set iniDestinationFolder=C:\Users\RandomUser/Game
setlocal enableextensions
setlocal ENABLEDELAYEDEXPANSION
set count = 0
set /a c=0
FOR %%i in (%iniFolder%\*.txt) DO set /a count+=1 & set /a c=c+1 & echo %%i !c!
echo *****%count% ini files found*****
echo press the according number to replace your ini file (1 - %count%)
endlocal
::logic missing here
set /P id=Enter number:
If id==1 goto accepted
:accepted
del %iniDestinationFolder%\Test.txt
xcopy %iniFolder%\Test2.txt %iniDestinationFolder%
pause
注意:在上面的示例中,我使用 .txt 文件而不是 .ini 文件进行测试。 任何帮助表示赞赏!
【问题讨论】:
-
set count = 0将名为count+ space 的变量设置为像 space +0... 这样的值
标签: windows batch-file xcopy