0

私はこのスレッドを読みましたが、これは役に立ちましたが、私の特定の質問には答えていません。誰かが助けてくれることを願っています。

2 列のデータを含む CSV ファイルをエクスポートしようとしています。列 1 は実際のファイル名 (拡張子付き) で、列 2 はファイルの場所の直接のフォルダー名 (パス情報なし) です。私が持っている質問は、それは可能ですか? 次の質問は、これを 2 列の情報を含む CSV ファイルとしてエクスポートするにはどうすればよいですか?

これは、ファイル名しかない (直接のフォルダー名を示す 2 番目の列がない) ことを除いて、良い出発点であり、各ファイル名の次の行に戻らないようです。代わりに、これはコンマで区切るだけで、新しい行には戻りません。

これが可能かどうかをアドバイスし、いくつかのアイデアを提供していただけますか?

    @echo off
<nul (
  for /f "eol=: delims=" %%F in ('dir /b /o:n') do set /p =""%%F","
) >fileList.csv

みんな、ありがとう!

4

2 に答える 2

0

「即時フォルダー名」によって、含まれているディレクトリの名前を意味し、そのディレクトリへのパスがない場合、次のようになります。

@ECHO OFF
SETLOCAL
PUSHD "%~1"
FOR /f "delims=" %%i IN ("%cd%") DO SET directory=%%~nxi
(
FOR /f "delims=" %%i IN ('dir /b /a-d /on') DO (
 SETLOCAL enabledelayedexpansion
 ECHO "%%i","!directory!"
 endlocal
)
)>filelist.csv
POPD

必要なディレクトリのパス名を最初のパラメータとして指定し、必要に応じて引用符で囲みます。

基本的に、問題のディレクトリに移動し、リーフ ディレクトリの名前を見つけて保存し、ファイル名を返すディレクトリ スキャンを実行します。両方を引用してコンマで出力します。内部setlocalは、少なくともいくつかのばかげたディレクトリ名を許可することです。


編集 20130422-1421Z

@ECHO OFF
SETLOCAL
PUSHD "%~1"
FOR /f "delims=" %%i IN ("%cd%") DO SET directory=%%~nxi
(
FOR /f "delims=" %%i IN ('dir /b /a-d /on') DO (
 SET fdate=%%~ti
 SETLOCAL enabledelayedexpansion
  ECHO "%%i","!directory!","!fdate:~0,10!"
 endlocal
)
)>filelist.csv
POPD

3 番目の要素として日付を表示するように編集されました。引用符は保持されます - 自由に削除してください。日付と時刻が必要な場合は、行を削除してにSET fdate置き換えます"!fdate:~0,10!""%%~ti

日付と時刻の形式 - 確かに、使用している形式を知る必要があります。

于 2013-04-17T19:16:53.367 に答える