0

大量のファイル (名前が異なる) から最初の 6 文字を削除するスクリプトを作成する必要があります。別の質問からこの例を試しましたが、よりよく理解したいと思います:

@echo off
setlocal enabledelayedexpansion
set X=3
for %%f in (*) do if %%f neq %~nx0 (
    set "filename=%%~nf"
    set "filename=!filename:~%X%,-%X%!"
    ren "%%f" "!filename!%%~xf"
)
popd

-%X%! で X を変更していることがわかります。実際には、フォルダー内のすべてのファイルから最初の X 文字をトリミングします。~%X% が何なのかわかりません。0 より大きい数値でない場合、スクリプトが実行されないことがわかります。また、セット X=3 が何であるかもわかりません-batファイルに存在するかどうかに違いがないことしかわかりません。このファイルの構文を教えてください。

前もって感謝します!

4

1 に答える 1

1

そのメソッドは Substring と呼ばれます。

ここで多くの例と説明を見ることができます: http://ss64.com/nt/syntax-substring.html

最初の数字は開始インデックスで、2 番目の数字は最後のインデックスです。

例:

@echo off
Set "Filename=TestFile.txt"
Set "Filename=%Filename:~0,-4%"
Echo %FILENAME%
pause

そのコードでは、インデックス "0" (文字列の最初の文字) から読み取りを開始し、"-4" で読み取りを停止します。次に、0 から -4 まで減算するため、結果は " TestFile "になります。

これが役立つことを願っています。

于 2013-04-23T23:41:24.310 に答える