gpt4 book ai didi

windows - 批量For文件循环字符串替换

转载 作者:可可西里 更新时间:2023-11-01 10:45:36 26 4
gpt4 key购买 nike

我在一个目录中有几个 mp4 文件,这些文件由 wget 命名,这是一个用于从 Internet 下载文件的实用程序。

问题是,它将文件名写为“1%20-%201%20-%20Overview%20%2802%3A09%29.mp4”(字符串的百分比编码“ 1 - 1 - 概述 (02:09)"),这很麻烦 - 它不是那么简单。所以我决定使用批处理命令来转换它们。

由于这些文件只包含一些特殊字母(空格、冒号和括号),我想我只需要在 cmd 中执行一些命令,并在尝试一些旨在更改 % 的命令之后20 到 SPACE,我卡住了。

在批处理文件中,我会使用:

@echo off
setlocal enabledelayedexpansion
for %%i in (*.mp4) do (
set aaa=%%i
rename "%%i" "!aaa:%%20= !"
)

我已经尝试过(用于测试):

SETLOCAL enabledelayedexpansion
FOR %i in (*.mp4) do (
SET aaa="%i"
echo "!aaa:%%20= !"
)

我试着改变 '!'到 '%',但它没有用。它似乎更准确地打印了我写的内容(比如几行 !aaa:%%20= !),或者 aaa 的值没有改变。

有人可以帮助我吗?我以为只是将 '%%' 更改为 '%' 会将批处理文件脚本转换为 cmd 命令。如果没有,还有哪些其他区别?

最佳答案

@echo off
setlocal

:: Define simple macros to support JavaScript within batch
set "beginJS=mshta "javascript:close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write("
set "endJS=));""

SETLOCAL enabledelayedexpansion
FOR %%i in (*.mp4) do (

for /f %%N in (
'%beginJS% decodeURIComponent("%%i") %endJS%'
) do set "dec=%%N"
echo !dec!

)

如果您尝试从 javascript(使用 mshta)解码 URIComponent 会怎么样?

关于windows - 批量For文件循环字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27400899/

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