これは新しいもので、誰かが助けてくれることを願っています。私はデータベースを照会し、結果を引き出し、変数に設定する次のバッチスクリプトを用意しています。バッチスクリプトで変数として設定し、変数を使用してネットワークドライブ上の特定のファイルを検索する値のクエリデータベース
set "sqlcmdServer=sqlinstance"
for /f %%A in (
'sqlcmd -h -1 -r 1 -Q "SET NOCOUNT ON; Declare @v varchar(100) set @v = (select idcorrent from database.dbo.table (nolock) where [identity] = 'UK' and idletter = 'EX' and stcorres = 14) Select @v"'
) do set "var=%%A"
echo %var%
pause
これは非常にうまく文字列を返します。私がしたいのは、この変数を含むこの変数を使用して、この変数を含む単一のファイル(pdfファイル)をネットワークドライブ上のフォルダで検索することです。ファイル名は、常に私はこれをいじりた変数すなわち「somecharacters_variable.pdf」
で終了します:テスト、成功した私のテストファイルを見つけ、1つのデスクトップフォルダからそれを移動し、
for /f "delims=" %%s in ('xcopy /l /e /y "C:\Users\USERNAME\Desktop\test1\*.pdf"r "C:\Users\USERNAME\Desktop\test2" ^|find ":"') do copy "%%s" "C:\Users\USERNAME\Desktop\test2"
別のだから私は、私のバッチスクリプトの末尾に追加するSETLOCAL enabledelayedexpansionを使用して、ネットワークドライブをデスクトップディレクトリを交換して、そのような(この質問の目的のために変更されたネットワークドライブ名)として変数を挿入しようとした:
set "sqlcmdServer=sqlinstance"
setlocal enabledelayedexpansion
for /f %%A in (
'sqlcmd -h -1 -r 1 -Q "SET NOCOUNT ON; Declare @v varchar(100) set @v = (select idcorrent from database.dbo.table (nolock) where [identity] = 'UK' and idletter = 'EX' and stcorres = 14) Select @v"'
) do set "var=%%A"
echo !var!
for /f "delims=" %%s in ('xcopy /l /e /y "\\networkdrive\test\test\*!var!.pdf"r "C:\Users\USERNAME\Desktop\test2" ^|find ":"') do copy "%%s" "C:\Users\USERNAME\Desktop\test2"
しかし、これはうまくいかなかった。
私が試している方法で達成可能ですか?もし私がそれについてどうやって行くのですか?
すべてのヘルプ/案内が高く評価され
種類は
は、私は... – aschipfl
が意図しないで推測 'xcopy'ソースに追加' r'、ある「しかし、これは動作しませんでした。」どのように動作しませんでしたか?エラーメッセージはありましたか?何が起こったのですか? – lit
@aschipfl whoops! rはそこにあることを意図していません!どうやってそれを見つけられなかったのか分かりませんが、ありがとうございます。そのスクリプトなしで私のスクリプト全体を再テストしただけで、うまく動作します!デスクトップフォルダーからデスクトップフォルダーの検索/コピーを実行する場合に限ります。 – Nighthawkz