我有一个批处理脚本已经工作了几个月。该脚本的目的是基于文件名创建一个文件夹,并根据特定目的相应地重命名该文件夹。但是,它会停止将文件移动到循环中创建的文件夹。我在其他机器上测试过它,它工作正常,但在特定的机器上;它只是不工作。为什么批处理文件在某些机器上没有按预期工作之前工作?
我能做些什么来使循环生效,为什么在工作了好几个月后批量停止工作(将文件移动到文件夹)?
setlocal EnableDelayedExpansion
for /F %%a in ('dir "C:\Program Files\WinSCP\Unconverted" /a-d /b') do (
if not "%%~dpnxa"=="%~dpnx0" call :func "%%~a"
:func
set file=%~1
set dir=%file:~0,49%
mkdir "C:\Program Files\WinSCP\Unconverted\%dir%_fdc" 2>nul
rem ECHO "%file%"
rem ECHO "C:\Program Files\WinSCP\Unconverted\%dir%_fdc"
move /Y "C:\Program Files\WinSCP\Unconverted\%file%" "C:\Program Files\WinSCP\Unconverted\%dir%_fdc"
)
start "" "C:\Program Files\WinSCP\hide_conversion_window.exe"
你看到的错误是什么?我已经可以看到一个括号)在开始的for循环中缺少。 – oldabl
我在删除@echo后没有看到任何错误。请告诉我缺少的括号)是因为我找不到丢失的地方。谢谢 – great77
谢谢,我已经发现了它,现在会让你知道它是否工作...。如果不是“%%〜dpnxa”==“%〜dpnx0”,则调用:func“%/ a”中的/ F %% a(“dir”C:\ Program Files \ WinSCP \ Unconverted“/ ad/b')do( ) %〜a“) – great77