これは私の最初の投稿です。誰かが私を助けてくれることを願っています。ファイルパスの長さをバッチファイルでチェックします。 #stringlength
私はかなり新しい.batファイルですが、私はphpとC++の基本的な知識があります。
次のようなバッチファイルを作成する必要があります。 1.フルファイルパスを含むすべてのファイルを現在のフォルダに表示します。 2.個々のファイルごとのファイルパスを含む、表示されたファイルの長さを表示します。 3.合計ファイル数を表示することがあります。
私は今までこれを書いていますが、ジョブ#1と#3はしていますが、文字列の長さを表示できません。
@echo off
for /r . %%g in (*.*) do (
echo %%g
)
set cnt=0
for %%A in (*) do set /a cnt+=1
set /A cnt=cnt-1
echo Dateien im Verzeichnis = %cnt%
PAUSE
文字列またはパスの長さをそれぞれ識別する2つのスクリプトがありますが、最初のスクリプトと一緒に配置できませんでした。ここで
文字列な長さのために1:
@echo off
set myvar="some string"
rem compute the length of a string
set #=%myvar%
set length=0
:loop
if defined # (
rem shorten string by one character
set #=%#:~1%
rem increment the string count variable %length%
set /A length += 1
rem repeat until string is null
goto loop
)
echo myvar is %length% characters long!
PAUSE
そして、ここでは現在のフォルダのパスの長さを表示します作品:
@echo off
echo %cd%>"%TMP%\Temp.txt"
for %%l in ("%TMP%\Temp.txt") do set /a len=%%~zl
del "%TMP%\Temp.txt"
set /a len-=2
echo Path length = %len% chars.
PAUSE
[ここで '便利で、より効率的です:length'ユーティリティ関数](http://stackoverflow.com/a/35203119/1683264)あなたのスクリプトにプラグインすることができます。 [このページを見る](http://www.dostips.com/DtTutoFunctions.php)バッチスクリプト機能の詳細については、こちらをご覧ください。 – rojo
私はそれが動作するようには思えません。私は確かに長い私のファイルパスごとに4 ... 8 ... 28のような乱数を与えました。あなたが想像したように私にそれをまとめてくれるように頼むのは大変ですか?グローバル変数とローカル変数に問題があると思います。何かが間違っています。事前に感謝しています、ルーク –
おそらく遅延拡張問題です。私は答えを投稿します。 – rojo