大家好,感谢您的帮助!
我目前有这个程序将单个文件重命名为小写:
这个文件是小写.bat
set LC1=%~nx1
set LC1=%LC1:"=%
set LC1=%LC1:A=a%
set LC1=%LC1:B=b%
set LC1=%LC1:C=c%
set LC1=%LC1:D=d%
set LC1=%LC1:E=e%
set LC1=%LC1:F=f%
set LC1=%LC1:G=g%
set LC1=%LC1:H=h%
set LC1=%LC1:I=i%
set LC1=%LC1:J=j%
set LC1=%LC1:K=k%
set LC1=%LC1:L=l%
set LC1=%LC1:M=m%
set LC1=%LC1:N=n%
set LC1=%LC1:O=o%
set LC1=%LC1:P=p%
set LC1=%LC1:Q=q%
set LC1=%LC1:R=r%
set LC1=%LC1:S=s%
set LC1=%LC1:T=t%
set LC1=%LC1:U=u%
set LC1=%LC1:V=v%
set LC1=%LC1:W=w%
set LC1=%LC1:X=x%
set LC1=%LC1:Y=y%
set LC1=%LC1:Z=z%
ren "%1" "%LC1%"
我有这个文件可以重命名(假设)每个子文件夹中的每个文件和文件夹。它通过多次调用上述批处理来完成
这称为 LowerCaseRecursive.bat
pushd %1
dir *.* /b /a-d /s > lwrcase.log
for /f %%i in ('type lwrcase.log') do call LowerCase "%%i"
del /q lwrcase.log
popd
您可以使用命令行调用程序并说 LowerCaseRecursive.bat "C:\Test\"。一切正常,但它不会重命名包含 a 的文件所以一切正常,但它似乎无法重命名带有空格的文件,即使它在 lwrcase.log 中有全名。for 只解析到第一个空格。
我对Windows批处理编程知之甚少,有什么想法吗?
非常感谢大家!如果您对此有任何疑问,请问我。
编辑:问题很可能出在对 lowercase.bat 的个人调用上。调试我可以看到对 lowercase.bat 的调用在空间裁剪后已经具有整个文件名。这意味着如果文件是 C:\Hello\My File.txt 它将调用:
call Lowercase "C:\Hello\My"