2017-07-17 13 views
1

ドライブに複数のフォルダがあり、似たような名前を持つすべてのファイル(例:index_lms.htmまたはindex*.htm)のパスとファイル名を抽出する必要があります。私はこれらをcsvファイルに入れる必要があります。これは大量アップロードテンプレートで操作して使用します。これはcmd shellまたはバッチファイルで可能ですか? (これは私がこれらを書いてみてからしばらくしてきました)ファイル名とパスの抽出 - 複数のフォルダ

今日はタスクのサイズが悪化しました.......私は今1000の英語コースを持っていて、ドイツ語、トルコ語、ロシア語のバージョンを翻訳しました。だから私は本当にこれらのパス名を抽出するバッチソリューションが必要でした - ありがとう。

ファイル名には他に1つの問題があり、空白を入れることはできません。ファイル名に複数の空白があることがわかります。パス/ファイル名の読み込み時にこれを簡単に編集できますか?

クイックアンサーには、ファイルがLMSシステムにロードされ、エラリングの対象ファイルは通常index.htmlまたはindex_lms.htmlまたはindex_html5.htmlです。しかし、私の場合、LMSは標準の命名規則を持つすべてのpdfファイルを提供しています。

+0

私soulutionは[TOPDIR] -type f>のfilename'を検索し、あなたが望むもののためにfilename' 'てはgrep'だろう。 DOS/Windowsでは 'dir/s [topdir]'と似たようなことがあると思います。私はその質問を誤解しているかもしれません。 – barrycarter

+0

あなたの定義は "似ていますか?" 「index_」、「test_」、「dskspc_」などの名前の特定のリストがありますか?あなたは、スクリプトが "似ている"ものを判断することを期待していますか? – lit

答えて

1

このバッチは、指定したフォルダを反復処理し、再帰的指数で始まる任意のファイルのためにそれらを検索し、ヘッダと列ファイル、パスとPathFileとcsvファイルを作成します。

@Echo off 
SetLocal EnableExtensions 
(Echo "File","Path","PathFile" 
    For %%A in (
    "X:\Test\" 
    "Y:\Home\Customer\" 
    "Z:\Users\UserName\" 
) Do Call :Search "%%~A" 
) > "%~dpn0.csv" 
Goto :Eof 
:Search 
For /R %1 %%B in (index*.htm*) Do Echo "%%~nxB","%%~dpB","%%~fB" 

出力ファイルは、バッチファイルと同じドライブ、パスと名前を持っていますが、ここでは拡張.csv

+0

私はちょうどこのセットを走らせ、私は夢のように働いた。あなたは絶対星です! – TonyW

+0

回答が参考になる場合は、[回答を受け入れる](http://stackoverflow.com/help/accepted-answer)および/または[投票する](https://stackoverflow.com/help/why)を検討してください。 -投票) – LotPings

0

これは、ファイルout.csvを作成します。あなた自身のdirパターンマッチを置き換えます。

del 2>nul out.csv 
for /f "delims=" %%f in ('dir/s/b c:\index*.htm') do <nul set /p =%%f,>>out.csv 
0

はPowerShellでそれを行うための別の方法です。

PS C:\src\t> type .\f2csv.ps1 
$dirs = 'C:\src\t', 'C:\labs' 

foreach ($dir in $dirs) { 
    Get-ChildItem -File '*.txt' -Recurse | 
     Select-Object @{Expression={$_.FullName}; Label="filename"} | 
     Export-Csv -Path '.\f2csv.csv' -Delimiter ',' -NoTypeInformation 
} 
PS C:\src\t> .\f2csv.ps1 
PS C:\src\t> type .\f2csv.csv 
"filename" 
"C:\src\t\iosloginfo\lognextnum.txt" 
"C:\src\t\t\file1.txt" 
"C:\src\t\t\file10.txt" 
"C:\src\t\t\file2.txt" 
関連する問題