內部或外部錯誤這是我試着翻譯/解釋你的bash代碼來批。
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set FILE_NAME=one_two_IMAGE_four
:: Set FILE_NAME=one_two_FUSION_CONFIGURATION_1_four
:: This replaces your awk
For /f "tokens=3 Delims=_" %%A in (
'echo:%File_Name%'
) Do Set Token3=%%A
:: Variable content is refered to by enclosing the var name in %
:: DelayedExpansion is neccessary because inside a (code block)
:: You have to use the exclamation mark instead of the percent then
If "%Token3%"=="IMAGE" (
Set F_NAME=!FILE_NAME:IMAGE=UCM!
) Else (
Set F_NAME=!FILE_NAME:FUSION_CONFIGURATION_1=UCM!
)
Echo FILE_NAME=%FILE_NAME%
Echo Token3 =%Token3%
Echo F_NAME =%F_NAME%
輸出
FILE_NAME=one_two_IMAGE_four
Token3 =IMAGE
F_NAME =one_two_UCM_four
FILE_NAME=one_two_FUSION_CONFIGURATION_1_four
Token3 =FUSION
F_NAME =one_two_UCM_four
EDIT
要renove從字符串延伸的.zip每行的內容將做:
Set F_NAME=%F_NAME:.zip=%
For %%A in ("%F_NAME%") Do Set F_NAME=%%~nA
Set F_NAME=%F_NAME:~0,-4%
由於沒有任何語法的是即使遠程關閉可以在批處理文件中運行的命令。如果你想知道命令的語法,你可以在bash提示符下做相同的事情並獲得命令的幫助。在這種情況下:'IF /?'如果要捕獲變量中的命令輸出,可以使用'FOR/F'命令。 – Squashman
您的*「code」*看起來像Linux/Unix的bash腳本,而不是Windows BATCH文件。我想你應該刪除'batch-file'標籤並應用'bash'標籤。 –