私はバッチスクリプトをすでに数ヶ月間働いています。スクリプトの目的は、ファイル名に基づいてフォルダを作成し、特定の目的に応じてフォルダの名前を変更することです。ただし、ループ内の作成されたフォルダにファイルを移動するのを停止します。私は他のマシンでそれをテストし、それは正常に動作していましたが、特定のマシンで動作していました。それだけで動作していません。一部のマシンでバッチファイルが正常に動作しなくなるのはなぜですか?
ループを有効にするために何ができるのですか。今何ヶ月も作業した後にバッチが機能しなくなった(ファイルをフォルダに移動する)のはなぜですか?
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 ") – great77