簡體   English   中英

Windows批處理文件和帶符號的處理路徑

[英]Windows batch file and processing paths with an ampersand

我是編碼Windows批處理文件的新手,我很難讓這個代碼來處理&符號。

批處理文件旨在使用imagemagick從一個文件夾樹中的圖像創建拇指到另一個文件夾樹。 一切順利,直到路徑中有一個&符號。 對於大多數命令,雙引號對此進行排序,但當它命中'如果不存在'%thumbpath%“'時,如果在%thumbpath%中有一個&符號,它就會失敗。

我已經嘗試使用路徑的短8.3版本,雖然它沒有倒下,但如果文件不存在,它也不會返回true。

@echo off
setlocal enableextensions
cd /D "%~dp0"
call :processFiles
pause
goto :eof

:processFiles
for /R %%f in (*.jpg) do call :processFile "%%f", "%%~nxf", "%%~pf", "%%~df"


:processFile
:: parameters 1=full path, 2=filename, 3=path(no drive no file), 4=drive
setlocal ENABLEDELAYEDEXPANSION
set "source=%~1"
set fileName=%~2
set "folder=%~4%~3"

:: replace media path with thumbs folder
set "folder=%folder:\media\=\media\thumbs\%"

:: create the directory tree if required
if not exist "%folder%" md "%folder%"

set "thumbpath=%folder%%fileName%"

:: the following line causes an error when there is an ampersand in %thumbpath%
if not exist "%thumbpath%" (
    magick "%source%" -resize 250x250 -unsharp  0x6+0.5+0 "%thumbpath%"
)

exit /b

懺悔時間......我在代碼echo%thumbpath%中有一條線就在魔法線之前。 這是罪魁禍首,因為我沒有引用%thumbpath%。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM