0

フルパスなしでフォルダの宛先を見つける方法は?フォルダ内のファイルのセットを別のフォルダにコピーしたいのですが、宛先フォルダの完全なパスがありません。たとえばC:\temp\folder A、ソースであり、宛先には次のようなパスがあります。D:\temp\folder X\folder A

の名前はわかりませんが、ソースのすべてのファイルをにコピーしたい"folder x"と思います。DOSコマンドを使ってやりたいです。"folder A"C:\ drive"folder A""D:\ drive"

4

3 に答える 3

0

このためのプログラムは必要ありません。単一のコマンドで実行できます。バッチファイルで使用する場合は、%を%%に置き換えます。不思議に思うかもしれませんが、「delims ==」は「フォルダA」が2つの文字列に分割されるのを防ぎます。ここで通訳者に、存在しない区切り文字として=を使用するように指示します。これにより、全体の文字列がターゲットパスを表示します。

for /F "delims==" %a in ('Dir /AD /s /b d:\^|find "Folder A"') do copy "c:\temp\folder A" %a
于 2013-03-15T13:26:26.630 に答える
0

ドライブ文字はわかっているが、正確なフォルダはわかっていない場合。ドライブの最上位からディレクトリを作成してから検索を実行すると、目的のフォルダが返されます。

Dir / AD / sd:* folder A * / S

forループを使用して出力を解析できるはずです。これの唯一の問題は、ドライブDに「folderA」という名前のフォルダが複数ある場合です。これは、@「ClassStacker」が参照していたものである可能性があります。一意であると想定する必要があります。

于 2013-03-11T17:21:03.800 に答える
0

次のようなものを試してください。

Set fso = CreateObject("Scripting.FileSystemObject")

WScript.Echo FindFolder(fso.GetFolder("C:\temp"), "folder A")

Function FindFolder(parent, name)
  For Each sf In parent.SubFolders
    If LCase(sf.Name) = LCase(name) Then
      path = sf.Path
    Else
      path = FindFolder(sf, name)
    End If
    If Not IsEmpty(path) Then Exit For
  Next
  FindFolder = path
End Function
于 2013-03-11T18:22:24.877 に答える