我有一個批處理腳本已經工作了幾個月。該腳本的目的是基於文件名創建一個文件夾,並根據特定目的相應地重命名該文件夾。但是,它會停止將文件移動到循環中創建的文件夾。我在其他機器上測試過它,它工作正常,但在特定的機器上;它只是不工作。爲什麼批處理文件在某些機器上沒有按預期工作之前工作?
我能做些什麼來使循環生效,爲什麼在工作了好幾個月後批量停止工作(將文件移動到文件夾)?
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