2016-04-11 5 views
1

で使用するディレクトリを返します。 私はバックアップスクリプトを作成していると私はの内容をバックアップするために後で使用するには、dirを返し、その後、(バックアップ用のネットワーク接続外付けHDD上にある)ファイル名の一部のためのネットワークを検索できるようにしたいですUSBデバイス。 私が探しているフォルダ名は、以下のように4つの要素で構成されています:Date-1234567-Type-User。 私が探している部分は、7桁のID番号です。これは、他の要素が何回も複製される可能性がある場合に一意です。 私が使用している現在のスクリプトも、私はWindows 7の部分フォルダ名を検索し、最初に私はとても優しくしてください。まだスクリプトの初心者ですバッチ

@echo off 
:start 

set /p path=enter id no.: 
for /r %%# in (.) do (
     Echo %%~nx# | find "string" "%path%" 1>NUL && (
       Echo Full Path: %%~nx# 
       Echo Filename : %%~nx# 
       Echo Directory: %%~p# 
     ) 
) 

if defined p (
echo %p% 
) else (Echo file not found 
) 
pause 
goto backup 

:backup 
if not exist "%p%"\"usb download" md "%p%"\"usb download" 

if exist (
xcopy /y "USB" "%p%"\usb download 
) 

pause 
goto start 

のXcopyに取り組んでいます、誰かが次のように私のスクリプトがある正しい方向に私を指すことができ、それはファイルが見つかりませんを与えているものを返していません行は自分自身で新しいフォルダを作成し、内容をコピーしますが、手動で完全なファイルパスを作成する必要があります。これは非常に大規模で面倒です。自動化すると劇的に役立ちます。 私はあなたの助けを前にありがとう、私はグーグルと私の心を捜したが、私が言ったように私は初心者であり、私の脳は溶けている。ありがとうございます。

+1

あなたはループの外で 'for'変数' %% p'にアクセスしようとしていますか?これは不可能です;それを 'set" VAR = %%〜p "'のような標準変数に割り当て、残りのコードには '%VAR%'を使う必要があります。パス全体に '' ''を置く必要があります。代わりに、 ' "%のVARの%" の' "%のVAR%の\ usbのダウンロード" '\ "USBダウンロード"' '変数p'が来る... – aschipfl

+1

のような、各ディレクトリの周り? 'もし定義されたp'や' echo%p% 'などで使われていますが、' set p = %%〜p# 'のようなものは見つけられません。ところで、変数 'path'を変更しないでください。それはそれ自身の[特別な意味を持つ](http://ss64.com/nt/path.html) – JosefZ

+0

変数としてパスを使用しないでください。これは、ウィンドウズがプログラムを見つけるために使用します。開いている間は、cmdプロンプトが壊れます。 –

答えて

2
for /f "delims=" %A in ('dir /ad /b /s z:\*1234567*') do echo %A 

これが該当するはずです。

+1

...助けてください '/ fに対する「delims =」%% Aにおける電気ショック療法...' – PBlank22