2016-09-21 8 views
0

私は、フォルダから最新のファイルを取得して、データベースに追加する必要があるという要件があります。誰もがここに助けることはできますか?だから、私は エコー出力をパラメータとして保存する

echo文以下
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\'WANT OUTPUT OF ABOVE ECHO HERE' >>C:\Users\krishha\Desktop\latest\h.txt 

に、最近のファイル名、すなわち、上記の出力を使用したい

.os cd "C:\Users\krishha\Desktop\latest\" 
.os for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set recent=%%x 
echo %recent% --GIVES THE RECENT FILENAME 

以下のようにフォルダから最新のファイルを取得することができましたか

私は以下のスクリプトを試してみましたが、どの

echo .Logon Teradata/username,password;>> C:\Users\krishha\Desktop\latest\h.txt 
.os cd "C:\Users\krishha\Desktop\latest\" 
.os for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set recent=%%x 
echo %recent% 
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\%recent%,skip=1;>>C:\Users\krishha\Desktop\latest\h.txt 
echo .REPEAT * >>C:\Users\krishha\Desktop\latest\h.txt 

を得ていない---私はあなただけでどこ環境変数をエコーすることができるはず%、最近%の代わりに

+0

元の投稿では、 'echo%recent%'が正しい出力を出すと言います。これはもはや真実ですか? – FloatingKiwi

+0

プレフィックス '.os'は何ですか? – aschipfl

答えて

2

を空白に取得しています

followiを実行
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\%recent%' >>C:\Users\krishha\Desktop\latest\h.txt 

:あなたが前に行ったようにパーセント記号で囲むことでそれをしたいですngの私のPC上で

for /f "delims=" %%x in ('dir /od /a-d /b .') do set recent=%%x 
echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\%recent%' 

は私に

.import vartext ' ' file = C:\Users\krishha\Desktop\latest\test4.bat ' 
+0

こんにちは、お返事ありがとうございます。私は同じことをやってみましたが、以下のようにはなっていません。 .import vartext '\t' file = C:\ Users \ krishha \ Desktop \ latest \、skip = 1; 'echo%recent%'があなたの望むものを与えるなら、%recent%012を入れた後でさえ、 –

+0

です。それから私が示した行は、あなたが間にやっている他のものがない限り、あなたが望むものを与えるでしょう。それがあれば投稿してください。 – FloatingKiwi

+0

私は以下を使用しています echo .Logon Teradata.gdw.cba/username\password; >> C:\ Users \ krishha \ Desktop \ latest \ h.txt .os cd "C:\ Users \ krishha \ Desktop \最新の\ " .osの場合" delims = "%% x in( 'dir/od/ad/b *。*')do =最近の%=echo%recent% echo .import vartext '\t' file = C:\ Users \ krishha \ Desktop \ latest \%recent%、skip = 1; >> C:\ Users \ krishha \ Desktop \ latest \ h.txt echo .REPEAT * >> C:\ Users \ krishha \ Desktop \ latest \ h.txt echo USING(>> C:\ Users \ krishha \ Desktop \ latest \ h.txt varchar(500)>> C:\ Users \ krishha \ Desktop \ latest \ hをエコーし​​ます。txt –

0

私はあなたが他の@FloatingKiwiのTEソリューションが働くだろう、あなたのバッチファイルの重要な部分を表示されていないことを前提としを与えます。

あなたの完全なコードは、あなたの結果を説明するよりもかっこのブロックの内側にあります。

%拡張とブロックで問題が発生するのを防ぐには、遅延拡張を使用できます。最近のファイル名に)&のようなコンテンツの問題も発生しません。
最後に出力を1つのブロックにまとめていますので、ファイルのリダイレクトは1回だけ必要です。

setlocal EnableDelayedExpansion 
cd "C:\Users\krishha\Desktop\latest\" 
for /f "delims=" %%x in ('dir /od /a-d /b .') do set "recent=%%x" 
(
    echo .Logon Teradata.gdw.cba/username\password; 
    echo .import vartext ' ' file = C:\Users\krishha\Desktop\latest\!recent!,skip=1; 
    echo .REPEAT * 
    echo USING (
    echo a varchar(500^) 
) >> C:\Users\krishha\Desktop\latest\h.txt 
+0

Hi Jeb私はあなたのコードを実行することができました...ありがとう:)ありがとう –

関連する問題