2016-11-07 15 views
-2

これはよくある問題だと私は理解していますが、私は特定のスクリプトを動作させるために他の質問の解答と提案を解読できません。forループ内での変数の拡張

@echo on 
setlocal EnableDelayedExpansion 

set directory=%1 
set file_list=%2 

for /f "tokens=*" %%i in (%file_list%) DO (
set newName=!%%i:~0,5! 
move "%directory%\%%i" "%directory%\!%newName%!s.jpg") 

endlocal 

これは私がそれを必要なときに明確にNEWNAMEがnullであるので、私もしようとしたときに最も可能性の高いシンタックスの問題のトラブルシューティングを開始することはできません

set newName=!image.png:~0,5! 
move "\\server\path\to\image.png" "\\server\path\to\!!s.jpg" 

にエコーと私は、この出力を与えています5文字にカットします。

感謝!

+3

こんにちはAdam、いくつかの例では、インターネットまたはStackOverFlowで、FOR変数をサブ文字列にすることができますか?ちょうど私たちが世話する必要があるStackOverFlowに悪い答えがないことを確認したい。 – Squashman

答えて

1
set "newName=%%i" 
set "newName=!Newname:~0,5!" 

あなたは%%iのようなmetavariableをサブストリングすることはできません。標準的な環境変数に指定し、指定された方法を使用して部分文字列を割り当てる必要があります(遅延拡張モードの変数!var...!)。

引用符で区切って文字列を区切りますライン上の目に見えない迷路は含まれていません。

関連する問題