2
ディレクトリリスト全体を変数に格納し、その変数をパラメータとして別のスクリプトに渡す必要があります。直接またはdirの出力をテキストファイルに保存してから次のようにします。バッチ - dirコマンドの出力を変数ディレクトリリストに格納
dir \path\todir > temp.txt
set /p VAR=<temp.txt
ただし、上記の行は1行しか読みません。助けてもらえますか?
ディレクトリリスト全体を変数に格納し、その変数をパラメータとして別のスクリプトに渡す必要があります。直接またはdirの出力をテキストファイルに保存してから次のようにします。バッチ - dirコマンドの出力を変数ディレクトリリストに格納
dir \path\todir > temp.txt
set /p VAR=<temp.txt
ただし、上記の行は1行しか読みません。助けてもらえますか?
最終目標に関するその他の情報は提供していないため、
私はperhapesは、このコードのような配列を簡単に変数を格納するためにあなたのアイデアを与える何かを投稿:
@echo off
set "folder=%userprofile%\Desktop"
setLocal EnableDelayedExpansion
REM Populate the array with existent sub-folders in this folder
for /f "tokens=* delims= " %%a in ('Dir /b /a:d "%folder%"') do (
set /a N+=1
set "Folder[!N!]=%%a"
)
Rem Populate the array with existent files in this folder
for /f "tokens=* delims= " %%a in ('Dir /b /a:-d "%folder%"') do (
set /a M+=1
set "File[!M!]=%%a"
)
::*****************************************************************
:Display_Folders
cls & color 0E
echo Just showing only Folders :
echo(
For /L %%i in (1,1,%N%) do (
echo Folder[%%i] = !Folder[%%i]!
)
echo(
echo Hit any key to show only files :
pause>nul
::*****************************************************************
:Display_Files
cls & color 0B
echo Just showing only Files :
echo(
For /L %%j in (1,1,%M%) do (
echo File[%%j] = !File[%%j]!
)
echo(
echo Hit any key to exit :
Pause>nul & exit
変数が一つだけのラインを持っています。 –
'set/P'はリダイレクトまたはパイプ入力の最初の行を読み込みます。 [/ syntax](/http://ss64.com/nt/for_F.html)ループのために必要なすべての行を読み込み、[some syntax hack]で改行を生成することによって各読み込み行を個別に連結します。 (http://ss64.com/nt/findstr-linebreaks.html);環境変数の全長は8190バイトに制限されていることに注意してください(XP以降のWindows版以降のもの)。しかし、すべての行を変数に格納することが本当に必要かどうか、もっと簡単で便利な方法があるのかどうか、自分自身に尋ねてみてください。 – aschipfl
@achipflのように:他のスクリプトはouput od 'DIR'で何をしますか? – SachaDee