立即注册 登录
GameMale 返回首页

164895785的个人空间 https://www.gamemale.com/?646805 [收藏] [复制] [RSS]

日志

让文心一言帮我写了个批量改文件后缀的脚本,但是脚本点了没效果 ...

热度 106已有 194 次阅读2024-4-30 04:52 |系统分类:其他

有没有编程大佬知道运行脚本没反应的原因是什么……我问文心一言为什么没反应它也回答不出什么有价值的内容……
代码如下:

@echo off  
setlocal enabledelayedexpansion  
  
set "sourceFolder=D:\1"  
  
for %%F in ("%sourceFolder%*") do (  
    set "fileName=%%~nF"  
    set "fileExt=%%~xF"  
  
    :: 移除可能存在的点(.)以判断是否为空后缀或乱码后缀  
    set "cleanExt=!fileExt:.=!"  
  
    :: 如果清理后的扩展名为空,或者不是.rar/.7z/.zip,则重命名  
    if "!cleanExt!"=="" (  
        ren "%%F" "!fileName!.rar"  
    ) else (  
        :: 转换扩展名为小写以进行比较  
        for %%e in (.rar .7z .zip) do (  
            if /I "!fileExt!"=="%%e" (  
                echo File "%%F" already has a valid archive extension, skipping...  
                goto :continue  
            )  
        )  
        ren "%%F" "!fileName!.rar"  
    )  
  
    :continue  
)  
  
echo Done.  
endlocal  
pause
95

震惊
1

感谢
1

关心
6

加油
2

有爱

刚表态过的朋友 (105 人)

发表评论 评论 (4 个评论)

回复 FErD 2024-4-30 07:38
[1]: https://stackoverflow.com/questions/988403/how-to-prevent-auto-closing-of-console-after-the-execution-of-batch-file ""
[2]: https://stackoverflow.com/questions/17604352/force-batch-file-to-answer-yes-to-prompts ""
[3]: https://stackoverflow.com/questions/6354240/have-bat-file-continue-after-it-runs-a-command ""
[4]: https://ss64.com/nt/syntax-error.html ""

看起来您提供的脚本是一个批处理文件,而不是PowerShell脚本。如果运行后没有反应,可能是因为脚本中存在逻辑错误或者命令没有正确执行。我注意到您的脚本中有一个标签`:continue`,但是在循环中使用`goto :continue`可能会导致脚本跳出循环。此外,`endlocal`和`pause`命令应该放在循环外面。

请尝试以下修改后的脚本:

```batch
@echo off  
setlocal enabledelayedexpansion  
  
set "sourceFolder=D:\1"  
  
for %%F in ("%sourceFolder%\*") do (  
    set "fileName=%%~nF"  
    set "fileExt=%%~xF"  
  
    :: 移除可能存在的点(.)以判断是否为空后缀或乱码后缀  
    set "cleanExt=!fileExt:.=!"  
  
    :: 如果清理后的扩展名为空,或者不是.rar/.7z/.zip,则重命名  
    if "!cleanExt!"=="" (  
        ren "%%F" "!fileName!.rar"  
    ) else (  
        :: 转换扩展名为小写以进行比较  
        set "validExt=0"  
        for %%e in (.rar .7z .zip) do (  
            if /I "!fileExt!"=="%%e" set "validExt=1"  
        )  
        if "!validExt!"=="0" ren "%%F" "!fileName!.rar"  
    )  
)  
  
echo Done.  
endlocal  
pause
```

这个修改确保了循环能够正确地为每个文件执行,并且在所有文件处理完毕后显示“Done.”消息并暂停,以便您可以看到结果。如果您仍然遇到问题,请确保您的`sourceFolder`路径是正确的,并且您有权限在该目录下操作文件。希望这能帮助到您!¹[1]

源: 与必应的对话, 2024/4/30
(1) windows - How to prevent auto-closing of console after the execution of batch file - Stack Overflow. https://stackoverflow.com/questions/988403/how-to-prevent-auto-closing-of-console-after-the-execution-of-batch-file.
(2) Force batch file to answer yes to prompts - Stack Overflow. https://stackoverflow.com/questions/17604352/force-batch-file-to-answer-yes-to-prompts.
(3) Have .bat file continue after it runs a command - Stack Overflow. https://stackoverflow.com/questions/6354240/have-bat-file-continue-after-it-runs-a-command.
(4) Error Handling in a batch file - Windows CMD - SS64.com. https://ss64.com/nt/syntax-error.html.
回复 FErD 2024-4-30 07:39
你要不找个有GUI的(比如ffrename
回复 164895785 2024-4-30 08:39
可以!测试后这个脚本可用,原来文心一言也会犯一些逻辑错误吗。因为我没系统学过编程,只会用,所以出现什么问题搞不定

最后再次感谢大佬XD
回复 FErD 2024-4-30 08:49
164895785: 可以!测试后这个脚本可用,原来文心一言也会犯一些逻辑错误吗。因为我没系统学过编程,只会用,所以出现什么问题搞不定

最后再次感谢大佬XD ...
chat连算数都会有小毛病。何况是国产(

facelist

您需要登录后才可以评论 登录 | 立即注册

文字版|手机版|小黑屋|GameMale

GMT+8, 2024-5-21 09:26 , Processed in 0.036584 second(s), 12 queries , Redis On.

Copyright © 2013-2024 GameMale

All Rights Reserved.