我有几个文件夹,其中包含5到20个具有不同名称的文件。它们每周都会被替换,因此每个文件的名称也会更改。但是我需要它们具有特定的名称,以便我可以使用SQL加载程序上传它们。
有没有一种方法可以创建一个批处理文件,该文件进入我指定的每个文件夹,选择所有文件并更改所有名称?完美解决方案只是一个递增的数字,例如:file1.xml,file2.xml等。
由于我是Batch的新手,因此我进行了一些搜索并找到了以下代码,但它仅更改了1个特定文件夹中的文件。
Dir *.xml | ForEach-Object -begin { $count=1 }
-process { rename-item $_ -NewName "$count.xml"; $count++ }
更新1我找到了工作代码,该代码使我可以重命名文件夹中的文件,就像我希望的那样。我只需要一个代码,即可使我同时或自动对另一个其他文件夹执行此操作。
@echo off & setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.xml') do (
ren "%%i" "!a!.xml"
set /a a+=1
)
@echo off & setlocal EnableDelayedExpansion
set a=1
rem make old name to prevent same name collision
for /D %%i in (*) do (
cd %%i
for /f "delims=" %%j in ('dir /b *.xml') do (
ren "%%j" "%%j-old.xml"
)
cd ..
)
rem rename process
for /D %%i in (*) do (
cd %%i
for /f "delims=" %%j in ('dir /b *.xml') do (
ren "%%j" "!a!.xml"
set /a a+=1
)
cd ..
)
echo Done
pause
Start .
希望能帮助到你。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句