gpt4 book ai didi

json - 如何批量递增文件名?

转载 作者:可可西里 更新时间:2023-11-01 09:28:07 24 4
gpt4 key购买 nike

我正在编写一个批处理文件,可以使用 google maps geolocation API 跟踪丢失的 android 手机。我不明白我的代码有什么问题。我遵循了我在互联网上找到的所有内容,但如果我运行代码,它会返回“语法不正确”或类似的东西。如果基本名称存在,它基本上会增加文件名。你能告诉我我的代码有什么问题吗?我该如何改正它?

:MainProcessNew
cd C:\Users\%USERNAME%\Documents
for %%G IN (*.json) do (
set file = %%G
)
set "baseName=data"
set "n=0"

:loop
set /a n+=1
if exist "%baseName%%n%.json (
goto loop
)

echo.>"C:\Users\%USERNAME%\Documents\data%n%.json"

最佳答案

使用这个批处理代码:

:MainProcessNew
cd /D "%USERPROFILE%\Documents"
for %%G in (*.json) do set "FileName=%%G"

set "BaseName=data"
set "FileNumber=0"

:FileNameLoop
set /A FileNumber+=1
if exist "%BaseName%%FileNumber%.json" goto FileNameLoop

echo/>"%USERPROFILE%\Documents\%BaseName%%FileNumber%.json"

主要错误是 IF 条件行中缺少双引号。

但还有其他错误和代码行可以改进。

不要使用 C:\Users\%USERNAME% 因为用户的配置文件目录也可以位于驱动器 C: 之外的另一个驱动器上。请改用预定义环境变量 USERPROFILE 的值。

当前用户的文档文件夹路径可以包含1个或多个空格,例如当用户名包含空格时。因此,始终用双引号将与用户配置文件相关的文件夹路径括起来。

命令 CD 应始终与 /D 一起使用,如果不能 100% 保证批处理的当前目录和新的当前目录,也可以更改当前驱动器在同一个驱动器上。

永远不要为等号周围有空格的环境变量赋值,请参阅 Why is no string output with 'echo %var%' after using 'set var = text' on command line? 以了解对这种常见错误的解释。

如果只应执行 1 个命令,则不要为命令 FORIF 定义带括号的命令 block ,因为这两个命令最初设计为仅运行 1命令。

建议在 CamelCase 表示法中使用良好的变量名。搜索 n 很难找到该环境变量的所有匹配项,但搜索 FileNumber 却很容易。

要了解使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。

  • cd/?
  • echo/?
  • for/?
  • goto/?
  • 如果/?
  • 设置/?

关于json - 如何批量递增文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39201500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com