[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/23 10:33 / Filesize : 215 KB / Number-of Response : 844
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %8 【.bat】



1 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 01:20:20.25 ]
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %7 【.bat】
hibari.2ch.net/test/read.cgi/tech/1298873550/

【.cmd】 バッチファイルスクリプト %6 【.bat】
hibari.2ch.net/test/read.cgi/tech/1277465356/
【.cmd】 バッチファイルスクリプト %5 【.bat】
pc12.2ch.net/test/read.cgi/tech/1242268171/
【.cmd】 バッチファイルスクリプト %4 【.bat】
pc12.2ch.net/test/read.cgi/tech/1229955189/
【.cmd】 バッチファイルスクリプト %3 【.bat】
pc11.2ch.net/test/read.cgi/tech/1217860043/
【.cmd】 バッチファイルスクリプト %2 【.bat】
pc12.2ch.net/test/read.cgi/tech/1197881068/
【.cmd】 バッチファイルスクリプト %1 【.bat】
pc11.2ch.net/test/read.cgi/tech/1178281991/

620 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:37:13.64 ]
拡張子によって処理を分岐させるにはどう書けばいいですか?

621 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:47:11.60 ]
質問者が手を抜いてるのに
それに答えるアホが現れるかどうか

622 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:52:48.57 ]
拡張子を判定してgotoすればいいです。

623 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 13:55:31.07 ]
>>620
どこにその文字列が格納されているかによるけどサンプルをいくつか

if "%~x1"==".bat" ...

goto label%~x1
...
:label.bat

for %%i in (foo.bat) do call :label%%~x1

624 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 16:32:51.65 ]
すみませんお騒がせしました
昨日調べて作ってみたのが動かなかったんですが
なぜかさっきもう一回試したら動きました

if "%~x1"==".rar" goto RAR
if "%~x1"==".7z" goto 7Z

shift
:RAR
rar x -y -ep1 "%~1" "%~dp1"
goto END

shift
:7Z
7z x -y "%~1" -o"%~dpn1"
goto END

625 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 16:38:37.73 ]
linuxのwgetみたいなのってbatだけでは無理ですか?

626 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 16:47:10.24 ]
ってよく考えたら2つの比較なら
if "%~x1"==".rar" (rar" x -y -ep1 "%~1" "%~dp1") else (7z x -y "%~1" -o"%~dpn1")
でよかったですね


627 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 17:10:54.72 ]
>>625
1.Powershellでごり押し
2.bat|cmdとwshでハイブリットごり押し
スクリプトのみはちょっときついかもね

628 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 17:27:47.53 ]
Powershellというのでやってみます



629 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 20:34:30.84 ]
>>609
> copy /b %1 + nul %1
> これは更新されない
更新されるが?

630 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 21:31:05.12 ]
>>625
opensourcepack.blogspot.com/2010/05/wget-112-for-windows.html
こういうWindowsバイナリを使わずにってこと?

631 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 08:06:00.39 ]
それ使っていいなら、こんなスレで質問しないと思うが…

バッチ / スクリプトのみではちょっと無理でしょ。

MSXML2.ServerXMLHTTP + スクリプトあたりが無難だと思うが。

632 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:33:59.21 ]
あー聞き方が曖昧だった。
Windowsバイナリ使わずに技術的に可能ならやってみる、ってこと?
を聞いてみたかっただけ。どこまでやってみるのか分からないけど
再帰、階層、ミラー、etc,...、とか考えるだけでしんどそうなのに挑むのかと。

633 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:55:11.72 ]
本当に本人かどうかはわからんけど、>>628 で Powershell でやってみると言ってるよ。

> 再帰、階層

むしろここら辺はスクリプトでも扱いやすいと思うけど。

634 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 06:27:04.19 ]
バッチに送った複数のファイルやフォルダのパスをソートしたいのですが
@(for %%a in (%*) do @echo "%%~fa")|sort
ですと
"C:\TMP\abc\1ファイル.txt"
"C:\TMP\abc\2ファイル.txt"
"C:\TMP\abc\3ファイル.txt"
"C:\TMP\abc\4フォルダ"
"C:\TMP\abc\5フォルダ"
のようになってしまいます。これをエクスプローラーの並び順のように
"C:\TMP\abc\4フォルダ"
"C:\TMP\abc\5フォルダ"
"C:\TMP\abc\1ファイル.txt"
"C:\TMP\abc\2ファイル.txt"
"C:\TMP\abc\3ファイル.txt"
としたいのですがどう書けばいいですか

635 名前:デフォルトの名無しさん [2012/02/29(水) 10:40:52.94 ]
>>629
俺のは更新されない
なんでだろうな

636 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 10:46:38.26 ]
vbs呼び出して頑張って自分でソートする

637 名前:デフォルトの名無しさん [2012/02/29(水) 11:56:21.97 ]
フォルダに他の属性が無いなら
@(@for %%a in (%*) do @if "%%~aa" == "d--------" @echo "%%~fa") | sort
@(@for %%a in (%*) do @if not "%%~aa" == "d--------" @echo "%%~fa") | sort

638 名前:デフォルトの名無しさん [2012/02/29(水) 12:02:28.55 ]
forとechoの前の@は不要だな



639 名前:ホイミン mailto:sage [2012/02/29(水) 14:54:02.18 ]
R:\Ue\Shita>dir /b /s .. ファイルが次の様にあります。
R:\Ue\Shita 上フォルダの中に下フォルダが有り、
R:\Ue\Ue1.txt それぞれ、ファイルが有ります。
R:\Ue\Shita\Shita1.txt
このうそつきを実行します。\じゃないところに注意。
R:\Ue\Shita>for %i in (../*) do @echo "%~fi"
"R:\Ue\Shita\Ue1.txt" 適当にパスを付けた、有りもしないファイルが表示されます。

>>634 僕も考えてみたよ。637も同じだけど、複数のディレクトリーにまたがる場合は、分ける必要が有るよ。
for /f "delims=" %%a in ('(dir /ad /b /on %* ^& dir /a-d /b /on %* ^) 2^>nul') do echo;"%%~fa"


640 名前:ホイミン mailto:sage [2012/02/29(水) 15:06:06.53 ]
でも dir /b /og の方が便利そうだね。
ごめんよ、ややこしくして。

641 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 15:59:08.48 ]
ちょっと質問なんですが
wget (url) -O ffd.txt
type ffd.txt|findstr xhmikosr.exe 1> ffd1.txt
for /f "tokens=3-4 delims=_" %%a in ('findstr "xhmikosr.exe" ffd1.txt') do set ver=%%a_%%b
wget -N -c (url)
innounp.exe -x "ffdshow_%ver%_xhmikosr.exe"
move {app}\*.dll C:\Program Files\ffdshow
で最後のmoveのとこでコマンド構文が間違ってますといわれるんですが
何が間違ってるんでしょう




642 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 16:00:18.81 ]
こうだろうな。
move {app}\*.dll "C:\Program Files\ffdshow"

643 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 16:47:28.73 ]
>>642
またやってしまった・・・
ダブルクォーテーションですね
ありがとうございました

644 名前:デフォルトの名無しさん [2012/02/29(水) 20:21:18.27 ]
>>640
おまえ、全然試してないだろ
そのバッチ作ってD&Dしてみろボケ

645 名前:ホイミン mailto:sage [2012/03/01(木) 08:22:30.49 ]
>>644 コマンドプロンプトで test.bat .\* 等と、色々やって試したんだけどね、足りなかったね。
dir がフォルダーを展開してしまうのには、書き込んでから気付いたんだけど、くどいので訂正しなかたんだよ。
使えない書き込みだから、みんな無視するだろうと思っていたよ。
一々反応してくれるのはありがたいけど、君は社会性が無いようだね。


646 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 08:25:30.43 ]
@echo 便所の落書きに(ry&pause

647 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 11:51:26.33 ]
便所の落書きだか知らんが
どう試したんだよw 全然ダメだろw

648 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:03:21.98 ]
@echo 便所の落書きに^(ry&pause



649 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:15:45.41 ]
dirの/oは引数をソートしないよ

650 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:54:15.80 ]
複数のファイルをバッチにD&Dしたら
引数の順番って、どう決まるの?

echo %*

マウスカーソルの位置のファイルが一番目?


651 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:29:17.92 ]
そうよ
2番目以降は並び順、ラップラウンド

652 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:30:26.30 ]
ついでに言うと、1番目ファイルでカレントディレクトリ

653 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:10:40.16 ]
バッチにD&Dしたら、カレントディレクトリは
%HOMEDRIVE%%HOMEPATH%が既定値なのでは?

654 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:25:46.89 ]
なのではって?そうなるのか?OSは?

655 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 23:30:35.02 ]
すまん。俺のPCは古い化石なんで、Win2000
他のは違うんかも

656 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:04:32.12 ]
カレントディレクトリはバッチに落とした場合とバッチのショートカットに
落とした場合で異なる。

657 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:38:45.35 ]
ショートカットの場合はプロパティで確認できる。
D&Dしたファイルとは無関係なようです

658 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:40:18.10 ]
ショートカットで設定してなければバッチと同じ
当たり前だろ



659 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 00:56:50.35 ]
だから何?
おれはショートカットの話は別にどうでもいいんだが

660 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:15:31.22 ]
カレントディレクトリはバッチに落とした場合とVBSに
落とした場合で異なる。

661 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:16:24.16 ]
だから何?
おれはVBSの話は別にどうでもいいんだが

662 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:20:45.18 ]
他人のレスの真似するなよ。

663 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:36:25.83 ]
なんでvbsは違うんだ?

664 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:39:43.76 ]
だから何?
おれはVBSの話は別にどうでもいいんだが

665 名前:デフォルトの名無しさん mailto:saga [2012/03/02(金) 02:53:26.53 ]
>>659
お前バカだろ。起動時のカレントディレクトリはあてにしてはいけないという事だ。
つまり、>>652の情報は何の意味もない。

666 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:54:30.97 ]
なんでスレタイ読めないの?
おれはVBSの話は別にどうでもいいんだが

667 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 03:39:03.93 ]
VBSのドロップハンドラがへぼいんだろ

668 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 08:52:29.56 ]
>>665
お前バカだろ。当たり前だろ



669 名前:ホイミン1 mailto:sage [2012/03/02(金) 11:52:24.56 ]
>>649 おお、そうなんだ勉強になったなあ。確認したんだけどなあ。
でもそんなにも僕はうっかり者だったのかと、もう一度確認したけど、ソートされているみたいだよ。
なにか勘違いしているかな? dir が使えなかったのは、変わらないけど。
R:\Ue\Shita>dir /b /on fortest.bat "Shit a2.txt" dirfile.bat
dirfile.bat
fortest.bat
Shit a2.txt

Drug and Drop は absolute で渡されるからいいんだけど、relative path を使った short cut の上に D'nD する際に問題になって、調べた事があるよ。
Drug and Drop は vista 以降で変更されているようだよ。
current directory は、XP 以前では %HOMEDRIVE%%HOMEPATH%、vista 以降では %~dp1 らしいね。
参考 www.hirax.net/diaryweb/2009/06/04.html


670 名前:ホイミン2 mailto:sage [2012/03/02(金) 12:05:26.19 ]
まとめてみたよ。XP では確認した(けど、でもばっちり確認したわけじゃあないから、低レベルな事を言わないで訂正してくれ)よ。
Current Directory in the various cases of launching
______________________ , 2000, _ XP,VISTA,SEVEN
DrugAndDrop___________ , HOME, HOME, _ %1, _ %1
DoubleClick___________ ,Lnchd,Lnchd,Lnchd,Lnchd
DrugAndDrop On ShortCut, HOME, HOME, _ %1, _ %1
DoubleClick Of ShortCut,Lnchd,Lnchd,Lnchd,Lnchd

-Anotation
-ShortCut is in case of the blank of "Start In". If not blanked, current directry follows it.
- HOME: %HOMEDRIVE%%HOMEPATH%
- _ %1: Directory of the 1st argument
-Lnchd: Launched directory (in case of short cut, directory of short cut)

drug and drop の際の問題といえば、全角スペース(他にも有)を含む "file name.txt" などのファイルを Drug and Drop するとクオートされないよね。他にも知ってる問題があったら、教えて。


671 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:15:09.54 ]
コマンドとか以前に
× Drug
○ Drag


672 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:16:55.25 ]
>current directory は、XP 以前では %HOMEDRIVE%%HOMEPATH%、
explorer processのcurrent directoryでは?

673 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 19:33:17.13 ]
moveでフォルダ移動のときフォルダ名指定に*使えないのは嫌がらせでしょうか

674 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 20:06:48.04 ]
仕様です

675 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 00:56:48.46 ]
>>669
俺は >>649 じゃないが、dir の /og は引数をソートしないようだ。
他は知らない。
というか間違いを書き込んで放置している奴が、
他人に社会性云々などと言える立場かよ。
レベルが低くて悪かったね。
便所の書き込みでした。

676 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 01:24:11.63 ]
ドラッグ&ドロップ 前提のバッチファイルならバッチの冒頭とかに
cd /d %~dp0

cd /d %~dp1
とかを状況次第で必要に応じて書き加えていそうなもんだが。
OS による挙動の違いで問題、とかいってる前にしないのかね。


677 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 01:49:25.89 ]
>>669
dir /b /on test\2\2.txt test\1\1.txt
2.txt
1.txt


678 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 03:30:18.27 ]
どうでもいいっす



679 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 05:21:31.12 ]
バージョンの違いだろwあほども

680 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 09:01:15.54 ]
低レベルな事を言わないでくれってさ

681 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 10:50:21.10 ]
>>676
バッチファイルでcd前提の処理は
UNCパスで実行された場合、想定外の動作になる

バッチファイルは相対ダメ
ゼッタイ絶対パス指定すべし

682 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 11:08:26.87 ]
どうでもいいっす

683 名前:634 mailto:sage [2012/03/03(土) 12:11:55.59 ]
>>637
ありがとうございます
教えて頂いた方法でやりたいことが出来ました

好奇心から、異なるディレクトリのものをまとめて送れるランチャーやファイルのリストなどから
同様のことが出来ないものかと機能拡張を試みて試行錯誤していてお礼が遅くなりました
申し訳ございません

改めまして再度質問です。よいお知恵があればご助言お願いします

arg.tmpの内容           list.txt              表示したい結果
"C:\TMP\aaa.txt"        "C:\TMP\abc"         "C:\TMP\abc"
"C:\TMP\abc"          "C:\TMP\aaa.txt"       "C:\TMP\aaa.txt"
"C:\TMP\abc.txt"        "C:\TMP\abc.txt"       "C:\TMP\abc.txt"
"C:\TMP\abc\1ファイル.txt" "C:\TMP\abc\4フォルダ"  "C:\TMP\abd.txt"
"C:\TMP\abc\2ファイル.txt" "C:\TMP\abc\5フォルダ"  "C:\TMP\bbb.txt"
"C:\TMP\abc\3ファイル.txt" "C:\TMP\abc\1ファイル.txt" "C:\TMP\abc\4フォルダ"
"C:\TMP\abc\4フォルダ"   "C:\TMP\abc\2ファイル.txt" "C:\TMP\abc\5フォルダ"
"C:\TMP\abc\5フォルダ"   "C:\TMP\abc\3ファイル.txt" "C:\TMP\abc\1ファイル.txt"
"C:\TMP\abd.txt"        "C:\TMP\abd.txt"       "C:\TMP\abc\2ファイル.txt"
"C:\TMP\abd\123.txt"     "C:\TMP\abd\efg"       "C:\TMP\abc\3ファイル.txt"
"C:\TMP\abd\456.txt"     "C:\TMP\abd\123.txt"    "C:\TMP\abd\efg"
"C:\TMP\abd\efg"       "C:\TMP\abd\456.txt"     "C:\TMP\abd\123.txt"
"C:\TMP\bbb.txt"        "C:\TMP\bbb.txt"       "C:\TMP\abd\456.txt"

arg.tmpのソートの方法がまずいということはわかるのですがどうすればいいのやら。。
以下に書いたバッチを貼ります。少し長いですがご容赦願います

684 名前:634 mailto:sage [2012/03/03(土) 12:12:59.66 ]
@echo off
set argpath=
set arglist=
call >"%~dp0list.txt"
@(for %%a in (%*) do @echo "%%~fa")|sort /o "%~dp0arg.tmp"
for /f "usebackq" %%b in ("%~dp0arg.tmp") do call :sub1 %%b
call :sub2
rem del "%~dp0arg.tmp"
pause&exit /b
:sub1
if not defined argpath (
set argpath="%~dp1"
set arglist=%1
exit /b
)
if %argpath%=="%~dp1" (
set arglist=%arglist% %1
exit /b
)
call :sub2
set argpath="%~dp1"
set arglist=%1
exit /b

685 名前:634 mailto:sage [2012/03/03(土) 12:13:15.16 ]
:sub2
set arglistfile=
for %%c in (%arglist%) do call :sub3 "%%~ac" "%%~fc"
if not defined arglistfile exit /b
for %%d in (%arglistfile%) do >>"%~dp0list.txt" echo "%%~fd"
set arglist=
exit /b
:sub3
set attr=%1
set attr=%attr:~1,1%
if "%attr%"=="d" ( >>"%~dp0list.txt" echo "%~2"
) else ( set arglistfile=%arglistfile% "%~2"
)
set attr=
exit /b

686 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 12:38:57.51 ]
絡んだおれがバカだった
絶対パスで好きにしてくれ

687 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 13:57:54.46 ]
てかいまどきバッチファイルなんか書いてる奴らが総じて底辺。

688 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 14:00:13.55 ]
>>679
テキトーなことぬかすなボケ



689 名前:634 mailto:sage [2012/03/03(土) 15:20:00.58 ]
arg.tmpの内容を "%%~dpa" "%%~fa" としてソートし :sub1 の%1を%2とすることで解決出来ました
こっちのほうが効率がいいとかありましたら指摘お願いします。以下、修正したバッチです

@echo off
set argpath=
set arglist=
set tmpfile="%~dp0arg.tmp"
set output="%~dp0list.txt"
call >%output%
@(for %%a in (%*) do @echo "%%~dpa" "%%~fa")|sort /o %tmpfile%
for /f "usebackq delims=" %%b in (%tmpfile%) do call :sub1 %%b
call :sub2
del %tmpfile%
exit /b

:sub1
if not defined argpath ( goto :jump )
if %argpath%=="%~dp2" ( set arglist=%arglist% %2
exit /b )
call :sub2
:jump
set argpath="%~dp2"
set arglist=%2
exit /b

690 名前:634 mailto:sage [2012/03/03(土) 15:20:35.76 ]
:sub2
set arglistfile=
for %%c in (%arglist%) do call :sub3 "%%~ac" "%%~fc"
if not defined arglistfile exit /b
for %%d in (%arglistfile%) do >>%output% echo "%%~fd"
set arglist=
exit /b

:sub3
set attr=%1
set attr=%attr:~1,1%
if "%attr%"=="d" ( >>%output% echo "%~2"
) else ( set arglistfile=%arglistfile% "%~2"
)
set attr=
exit /b

691 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 18:01:42.04 ]
うざ

692 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 19:48:23.70 ]
%~dpは早退なのかよ

693 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:02:34.08 ]
遅刻なのかよ

694 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 20:06:23.02 ]
dir /b /on test\2\2.txt test\1\1.txt
1.txt
2.txt

695 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:11:40.93 ]
dir /b /on z:\z.txt y:\y.txt
z.txt
y.txt

696 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 21:39:04.11 ]
dir /b /on z:\* y:\*
z.txt
y.txt

697 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 22:59:19.02 ]
dir /b /on test\2\2.txt test\1\1.txt |sort
1.txt
2.txt


698 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:33:17.02 ]
>dir /b /on a.txt b.txt
a.txt
b.txt

>dir /b /o-n a.txt b.txt
b.txt
a.txt



699 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:34:32.16 ]
>>698
確かに引数をソートしてるな

700 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:37:41.92 ]
>dir /b /on a b
a.txt
b.txt
a.txt
b.txt

>dir /b /o-n a b
b.txt
a.txt
b.txt
a.txt

701 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 01:38:36.31 ]
ディレクトリ単位にソートってことだろ?

702 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 10:23:07.77 ]
>>689 俺もバッチ作ってみた

@echo off & cd /d "%~dp0"
del tmp1 tmp2 list.txt > nul 2>&1
(for %%i in (%*) do @echo "%%~dpi","%%~fi")| sort /o tmp1
set /a a=10000 & set b=""
for /f "delims=, tokens=1,2" %%i in (tmp1) do (
set c=%%i& set d=%%~aj& set e=%%j& call :x)
for /f "delims=, tokens=2" %%i in ('sort tmp2') do echo %%i>> list.txt
del tmp1 tmp2 & goto :eof
:x
if not %b% == %c% set b=%c%& set /a a+=1
if %d:~0,1% == d (set /a f=0) else set /a f=1
echo %a%%f%,%e:~0,-1%>> tmp2

703 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 15:41:04.60 ]
うざ

704 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 16:17:47.60 ]
>>689-690 はファイル名に%文字があると誤動作する

705 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 18:03:47.92 ]
どの行?

706 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 18:07:01.85 ]
あの行

707 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 18:09:41.44 ]
たぶんcallの引数の%が化ける

708 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 19:27:26.60 ]
引数渡しやめて環境変数渡しにすればよい



709 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 23:36:02.16 ]
>>704
ファイル名の%ってどうやって環境変数記号でないと判断させればいいの?

ファイル名内の%の位置を調べて存在したら
^でエスケープするしかない?

710 名前:デフォルトの名無しさん mailto:sage [2012/03/04(日) 23:38:42.64 ]
%のエスケープは%%だよ

711 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:00:12.25 ]
なんでお前らいまだにバッチファイル書いてるの?

712 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:12:58.43 ]
バッチファイルは基本だよ

713 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:36:58.96 ]
>>709
%%

714 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 00:42:23.44 ]
for変数と混同するんじゃね

715 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 15:40:43.79 ]
このバッチに名前が%文字を含むファイルをD&Dしてごらん
違いが分かるよ

@echo off
set a="%~nx1"
call :x %a%
call :x %%a%%
pause
goto :eof
:x
echo %1


716 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 23:46:11.91 ]
setlocal enabledelayedexpansion
set a="%~nx1"
set a=!a:%%=%%%%!
echo %a%
call :x %a%
call :x %%a%%
pause
exit
:x
echo %1

717 名前:デフォルトの名無しさん mailto:sage [2012/03/05(月) 23:48:22.26 ]
@echo off
for %%i in (%*) do (set a=%%i& call :x %%a%%)
pause & goto :eof
:x
echo %1


718 名前:デフォルトの名無しさん [2012/03/05(月) 23:49:44.92 ]
^%



719 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 00:07:24.36 ]
@echo off
for %%i in (%*) do set a=%%i& call :x
pause & goto :eof
:x
echo %a%


720 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 00:10:12.82 ]
いつまでやってんだよカス






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<215KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef