1read 100read
2012年6月Windows188: 初心者〜管理者まで必読!コマンドライン(DOS Pt.8) (766) TOP カテ一覧 スレ一覧 2ch元 削除依頼
* VistaのSuperFetchとAeroは安易に切ると遅くなる (912)
DirectX10スレ (290)
今日もマターリ Win2k居残り組スレッド Part10 (572)
初期VistaよりXP SP3の方が安価で安定する (314)
Windows7 不具合報告スレ Part 4 (703)
gdi++.dll 質問スレ 1px (706)

初心者〜管理者まで必読!コマンドライン(DOS Pt.8)


1 :09/05/24 〜 最終レス :12/06/23
適材適所で GUI と CUI を組み合わせて、 (゚д゚)ウマー
DOS由来コマンドだけでなく、Windows バージョンアップのたびに拡充されてきたコマンド、
wsh(cscript)、cygwin、Resource Kit、Support Tools、その他のフリーソフト等ふくめ
コマンドラインインタフェースに関するネタならなんでもOK。
質問も歓迎だけど、自分で調べて勉強する努力も忘れずに。
前スレ
初心者〜管理者まで必読!コマンドライン(DOS Pt.7)
http://pc12.2ch.net/test/read.cgi/win/1217738171/

2 :
過去スレ
1 http://pc.2ch.net/win/kako/1002/10023/1002392089.html
2 http://pc5.2ch.net/win/kako/1013/10138/1013833995.html
3 http://pc8.2ch.net/test/read.cgi/win/1062775949/l50
4 http://pc8.2ch.net/test/read.cgi/win/1116131036/l50
5 http://pc11.2ch.net/test/read.cgi/win/1152544955/l50
6 http://pc11.2ch.net/test/read.cgi/win/1176558776/
7 http://pc12.2ch.net/test/read.cgi/win/1217738171/
対立状態のスレ
【.cmd】 バッチファイルスクリプト %5 【.bat】
http://pc12.2ch.net/test/read.cgi/tech/1242268171/

3 :
srh ファイル内容検索コマンド
http://www.hir-net.com/soft/win/srh.html

4 :
あげ

5 :
NT版UNIX-like tools Version 0.14
http://www.piedey.co.jp/softs/ntuxtl014.html

6 :
>>5
これとどう違うの
ttp://unxutils.sourceforge.net/

7 :
fc/?

8 :
findstrやsed、grepなどで \ や " を使いたいのですが、
表示はできるのに、 > fin.txtとリダイレクトすると永遠に処理待ちやエラーになってしまいます。
|FINDSTR: 開くことができません (fin.txt)
|grep: >: Invalid argument
|grep: fin.txt: No such file or directory
*nixなどのエスケープ文字としての \ と、コマンドプロンプトとは異なるのでしょうか?
にしても、リダイレクトにするとエラーになるのがイマイチわかりません。
" を試していた時の hoge.txtは、こんな感じです。
"hoge"
"moge"
moge
hoge
[EOF]
試したコマンドラインは、こんな感じです。
c:\>grep "hoge\"" hoge.txt > fin.txt
c:\>grep "hoge\"" hoge.txt > fin.txt
c:\>grep "hoge\""" hoge.txt > fin.txt
c:\>grep "hoge^"" hoge.txt > fin.txt
c:\>grep "hoge^""" hoge.txt > fin.txt
正しいコマンドラインを教えてください。よろしくお願いします。

9 :
grep hoge^" hoge.txt > fin.txt
grep ^"hoge\^"^" hoge.txt > fin.txt

10 :
>9
できました!ありがとうございます。
コマンドプロンプトのエスケープ文字が ^で、コマンドラインとして与える時には、
キーワードの対象文字全てに ^しておけばいいんですね!間にスペースを挟む場合も、これでいけました。
|C:\>grep ^"hoge hoge\^"^" "hoge hoge.txt" > "fin hoge.txt"
こっちの例ではダメでした。処理待ちになってしまいます。動作確認は、XP/Vistaで。
|c:\>grep hoge^" hoge.txt
|c:\>grep ^"hoge hoge.txt
別件。
move hoge.txt temp
move moge.txt temp
(しかも、tempディレクトリを作り忘れたまま)で、やってしまいました。
コマンドラインだと、上書き確認されるので、batにも、そのまま書いてたら…
batの場合は明示的に/-Yつけてないと、確認無いんですね…。
油断してました。いや、こんなコトに今まで気づかなかった自分が情けない。

11 :
@echo off
setlocal enableextensions enabledelayedexpansion
set t=abcdefg
echo !t:~0,4!
if !t:~0,4!==abcd echo !t:~0,4!
実行結果
abcd
4!==abcd の使い方が誤っています。
何でこうなるのかさっぱり分からないです…
何か根本的な勘違いをしているのでしょうか?

12 :
一応今の状況を解説すると
こんな何時間も誰も相手にしないということは警戒されてる時
if "!t:~0,4!"=="abcd" echo !t:~0,4!
でいけるだろ、と書いたら
「そうじゃないんですよ、何でこうなるのかその理由を知りたいんですよ」
と牙をむいてくってかかってくる危険性が文章に仕掛けられている
それでみんな相手にしないと
まあそういうこと
>>11は直しかたもすべてわかった上でわざと聞いてる、と考えるのが妥当

13 :
で?どういう意味?
間違いないの?

14 :
知らんがな
勝手に想像すればいいだろ
思うのはタダなんだし

15 :
if !t:~0^,4!==abcd echo !t:~0,4!

16 :
if a;,=a echo a

17 :
>>12
> 「そうじゃないんですよ、何でこうなるのかその理由を知りたいんですよ」
この部分は多分にあるけれど
> >>11は直しかたもすべてわかった上でわざと聞いてる、と考えるのが妥当
これは無いです。
>>15で行けるのは分かったがなぜエスケープしなければならないのかが疑問。
if文でカンマって何を意味するんでしょうか?
ヘルプにはそれに関することは何も書いてないし…

18 :
ちなみに実際のif文はforの中に書いています。
結構何度もバッチ書いてるのに今まで引っかからなかったのが疑問な位ですが。

19 :
;,はトークンの区切り文字、スペース、タブと同じ
ttp://it-is-it.net/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/#content_1_12

20 :
>>19
ありがたいです。
結構何年もバッチ書いてて初めて知ったようなw
>>12
さっきは気づきませんでしたが
> if "!t:~0,4!"=="abcd" echo !t:~0,4!
これじゃ駄目ですよね。

21 :
いけますがなにか?www

22 :
>これじゃ駄目ですよね。
牙をむいてくってかかってくる
はい予言的中ww
僕ちゃんなんねんもバッチ書いてまちゅー
けど、出来るかどうか自分では試すことはできません
              何年もバッチ書いいてる>>20

23 :
>>19に"で区切り文字をエスケープできるって書いてあるだろ

24 :
>>19に挨拶して黙って消えりゃいいものを
ひねくれた根性の悪さが災いして一言反撃してやろうという魂胆が墓穴掘ったな
>これじゃ駄目ですよね
とうどういうこと
パソコン持ってないの?バッチ書いて動かせば1秒で結果でる
なぜ他人に質問してるの?2chに投稿してる暇があったら簡単にできる
数年のバッチ歴をひけらかす日本を代表するバッチ男なんだろ
試してないが「これに書いてるのはどうせ駄目なんだろう」と言う意味か

25 :
じゃあバッチ野郎のAA頼む↓

26 :
if !t:efg=!==abcd echo !t:efg=!
if !t:efg^=!==abcd echo !t:efg=!
if "!t:efg=!"=="abcd" echo !t:efg=!

27 :
for /f "deims=;" は"で=;をエスケープ
for /f deims^=^; でもおなじ

28 :
日ごとに生成されるログファイル(ファイル名が20090603.log等になってます)を
type *.log > hoge.txt
↑でhoge.txtににまとめようとすると昇順にまとまりますよね?
これを降順にhoge.txtにまとめたいのですが、どうも初歩的過ぎるようで参考になる情報がみつかりません。
どなたか教えてください。

29 :
dir/?
for/?

30 :
dir /b/on *.log

31 :
(for /f "delims=" %%I in ('dir /b /o-n *.log') do @type %%I) > hoge.txt

32 :
過去ログの
初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
http://pc8.2ch.net/test/read.cgi/win/1116131036/789
でarghelperを改造してうpされたarghelper2をお持ちになっている方
いらっしゃいましたらどこかにうpしていただけないでしょうか?
うpされたスレの住人の方なら落とした方もおられると思い
書き込ませていただきました
よろしくお願いします

33 :
longparmはどうよ?

34 :
コマンドプロンプトでプログラムの動作判定をしたいです
Operaが終了したらif/else文かなにか(?)で判定してProxomitronを自動終了
というような作業をするのが目的です
…が、if/else文はファイルしかサポートしてないようなので質問します

35 :
> if/else文はファイルしかサポートしてないようなので
if /?
どこにファイルだけなんて書いてある?
そもそもif”だけ”で判断するようなもんじゃないが。

36 :
>>35
if existのtypoだろ
>>34
for /f ... in ('tasklist /fi ...')

37 :
cmdとPowerShellの中間が10年前に欲しかったよ。
WSHも使いづれーし意図的にGUI側に誘導しようとして
糞なまま放置したとしか思えん。

38 :
いや実際その通りだと思うが

39 :
ドライブレターがDのパーティションから、
ドライブレターだけ削除したいのですが、
どんなコマンドがありますか?
diskpartのremoveだとリムーバブルドライブしか駄目なようなので困っています。

40 :
そうでもないな。
シンプルボリュームでもいけたわw

41 :
バッチファイルのfor文を使うときに、そのdo()の中で制御文--具体的にはif文--を
使う方法ってありますか?どうもif文の入れ子の要領でやってもうまくいかないようで。

42 :
普通に出来るが。
推測するにif文のところが問題なんではなく変数展開の問題と思うが。
遅延環境変数展開って言葉知ってるか?

43 :
レスありがとうございます
>遅延環境変数展開って言葉知ってるか?
知ってます。でも基本的に駄目なんです、それ使っちゃ。大体こんな感じです。
set move_dir=C:\hoge\
rem パス中やファイル名に!があるかもね
if not exist "%move_dir%%~nx1" (
for /f usebackq^ eol^=^ delims^= %%T in (`dir /b "%~dp1*%~n1*.*"`) do (ここでif not exist "%move_dir%%%T"ならmove "%~dp1%%T" "%move_dir%"とかしたい)

44 :
やべ、最後に)足りてなかった

45 :
moveはdefaultで上書きしないからifはいらない

46 :
>>45
おぉそういえばそうか!とも思ったけど、move以外のコマンドを使う可能性も
十分考えられるので、自分なりにファイルパス中に()や!が含まれるケースの
操作方法について考えてみた。
------------------------------------------------------------
set move_dir=C:\hoge\
for /f usebackq^ eol^=^ delims^= %%T in (`dir /b "%~dp1*%~n1*.*"`) do (
set target_F=%%T
set target_P=%~dp1%%T
call :move_action
)
goto :EOF
:move_action
if not exist "%move_dir%%target_F%" (
move "%target_P%" "%move_dir%"
) else (
echo "%move_dir%%target_F%"は既に存在します、移動取り消し
)
goto :EOF
------------------------------------------------------------
うーん、前スレの特に後半あたりでよく出てきた用例に触発されて
最近callをよく使ったりしてるが、実に使いやすい・・・

47 :
set move_dir=C:\hoge\
for %%I in ("%~dp1*%~n1*.*") do (
if not exist "%move_dir%%%~nxI" (
move "%%I" "%move_dir%"
) else (
echo "%move_dir%%%~nxI" は既に存在します、移動取り消し
)
)
これじゃ駄目なのか

48 :
コマンドラインから自分のグローバルIPを取得する関数はありますか?
ipconfig ではLAN内のローカルアドレスしか取れないので困ってます。
できればWindowsネイティブの関数、なければcygwinで使えるものを探しています。

49 :
外にHTTPなりでリクエストを投げてレスポンスに
Request-Hostを出してくれるような外部鯖を使わないとまず無理
もしくはtracertであたりを付けるか

50 :
>>48
LAN環境でのグローバルIPはそのPCが持ってるわけじゃないから
PCでコマンド打とうが何しようが出て来ないさ
グローバルIPを持つのはルータのグローバル側のポートだから
Telnetでルータに接続してifconfig叩く位しかない

51 :
>>49-50
残念、ないんですね。
ありがとうございました。

52 :
超初心者の俺からの質問です。
treeやらdirでフォルダを一覧にする際に、
特定の階層まで(一階層下までなど)で、出力することはできますか?
たとえばtreeやると、ずらーーーと何階層も下のフォルダまで表示するじゃないですか。
それを一階層までにしたいときはなんて入力しますか?
誰かお願いします

53 :
以下のようなバッチファイルを作ればtreeで一階層だけ出力できると思うが
正直お勧めしない
@echo off
for /D %%a in (%1\*) do (
for /D %%b in (%%a\*) do (
rd /s /q %%b
)
)
tree %1

54 :
自作自演は正直お勧めしない

55 :
ファイルが一つだけ入ったディレクトリ、というものがたくさんあり、
整頓してファイルをまとめた一つのディレクトリを作りたいと考えています。
ディレクトリのみを消してファイルを残すというコマンドや方法はあるのでしょうか?

56 :
>ファイルが一つだけ入ったディレクトリ
>ディレクトリのみを消してファイルを残す
できない

57 :
bashかなんかの環境なら move ./**/* ./
でエラー吐きながらもやってくれた希ガス。
今は環境ないからわかんないけども。
コマンドラインでなくてもいいなら
移動とりどりでできる。

58 :
>>55
発想を変えてWinRARを使ってオプションでフォルダ情報を格納しないにして無圧縮で固める
同名ファイルがないという前提だけどな
もしくはこんなのとか
http://download.goo.ne.jp/software/contents/soft/winnt/util/se475720.html
http://www.forest.impress.co.jp/article/2009/04/07/okiniiri.html

59 :
あるフォルダに、…[1].jpg という名前のファイルが多数入っていて
これらのファイル名から[1]だけを外したいのですが、どうすればいいでしょうか?

60 :
位置が固定ならファイル名の3文字飛ばしてリネームが簡単。
位置が動くとちょっと面倒くさいな。

61 :
ren ????.* ?.*
ren ?????.* ??.*
ren ??????.* ???.*
...

62 :
>>60,>>61
ありがとうございます

63 :
FOR /F "tokens=1,2 delims=[1]" %a IN ('dir /b') DO ren %a[1]%b %a%b

64 :
delims=abc は aとbとcを区切り文字にするっていう意味だよ。
abcという文字列が区切りになるわけじゃない。

65 :
バッチで
FOR /F "delims=" %%a IN ('dir /b') DO (
set n=%%~na
call ren "%%~a" "%%n:~0,-3%%%%~xa"
)

66 :
>>64
そうか、すまんかった(・ω・)
文字列の置換さえ出来れば[1]を/かなんかにして終わりなんだけど

67 :
>>65でいけました。
ありがとうごさいました

68 :
タイムアウトを指定できるPAUSEコマンドのような外部ツールってありませんか

69 :
>>68
Vistaならずばりtimeoutってコマンドがあるよ

70 :
:?7%00%DDPYA44P,5@P_4?P],}P^5'2PZ-%qPR545PZ5E]1F}5uAP5,ZP]5w9'PU/5zjPRQu
:Nide/com2txt/X-uw'P'5+~PZ5g(P]-vjPRU-*`P5H9P-E)PZ-KaP5V2P]5hTP5BSPRUVES
:?[X5;:PZ5WN'PR',~P/5`QP5Z P-UrPEUQ]EENNNNNN:~
@echo off
( setlocal
ren %0 %~n0.com
"%~dpn0.com" 5 5秒PAUSE
ren "%~dpn0.com" %~nx0
endlocal )
:~?aM!3"b3wvD[6%HF"6,IBt<[6j,I%0-2T`$,!tp"MdTpq36%H'LPi[6E%Iu<VPf0eH`!!^
:H7f-^e0f-Ptv9<\6wH)^-#]wf"-I%^f0f-5nvHrPevpoPKgf-<&^#]%Cf-]$Bf-?^H;f-*

71 :
コマンドラインを極めるのが時間の無駄だってことがよく分かる流れだな

72 :
>>71
日本語でOK

73 :
わざわざcom2txt使うか?ぼけ

74 :
>>73
折角>>70が釣り針垂らしてるのに、それを先に言っちゃ(ry

75 :
新出氏も相変わらずなようで

76 :
http://syobocal.orz.hm/
http://tv.goo.ne.jp/index.html
http://tv.goo.ne.jp/index.html
http://www.axonpro.sk/japo/info/MS/SBS/
http://www.findthatfile.com/index.php?q=batch&mediaselect=Z&offset=400
http://44.130.51.150/obcm/run/dos/timeout/?C=N;O=D
http://202.50.176.69/1_tools/?C=M;O=A
http://www.langman.com.tw/My_ICON/Exe_Ico/
http://home.elka.pw.edu.pl/~gniemiro/stuff/?C=D;O=A
http://www.siskiyoutech.com/support/utils/fastpush/utils/?C=M;O=A
http://www.siskiyoutech.com/support/utils/fastpush/utils/TIMEOUT.EXE
http://sistemas.cacto.com/software/SOFT/xertix/tools/
http://cd.textfiles.com/hof91/GAME4/?N=D
http://44.130.51.150/obcm/run/dos/timeout/
http://202.50.176.69/1_tools/?C=S;O=A
http://twistedtechie.com/t00lkit/Computer-Repair-Utility-Kit-V2/File%20Management/JkDefrag%20GUI/Programs/
http://www.siskiyoutech.com/support/utils/fastpush/utils/?C=N;O=D
http://www.cyf-kr.edu.pl/ftp/softlib/full.html
http://ftp.back2roots.org/back2roots/cds/faces_of_mars/amiga_demo_collection/t/?C=N;O=D
http://ftp.back2roots.org/back2roots/cds/faces_of_mars/amiga_demo_collection/t/?C=S;O=D
http://www.scribd.com/doc/18123121/Windows-XP-Commands
http://www.scribd.com/doc/3135804/Cac-lenh-trong-RUN
http://dl2.ezthemes.com/files/g/filesubmitdl2/s/

77 :
http://202.50.176.69/1_tools/?C=S;O=A
http://bt.deathcorp.com/1_tools/?C=M;O=A
http://cd.textfiles.com/hof91/GAME4/?N=D
http://dl2.ezthemes.com/files/g/filesubmitdl2/s/
http://hamilton.nzwireless.org/1_tools/?C=N;O=D
http://roundcube.bt.net.nz/1_tools/
http://roundcube.bt.net.nz/1_tools/?C=S;O=D
http://www.cyf-kr.edu.pl/ftp/softlib/full.html
http://www.launchpivot.com/vista_command_line_tools.html
http://www.scribd.com/doc/3135804/Cac-lenh-trong-RUN
http://www.siskiyoutech.com/support/utils/fastpush/utils/?C=N;O=D
http://www.vsm.com.au/ftp/

78 :
start /wait rsm.exe refresh /lf"4mm DDS"
timeout 60
NTBACKUP BACKUP "@f:\backups\nightly backup.bks" /p "4mm DDS" /J "Nightly Backup" /l:s /m normal /HC:ON /UM /V:NO

79 :
secedit /refreshpolicy machine_policy /enforce
secedit /refreshpolicy user_policy /enforce

80 :
意外と知られていないコマンドプロンプトの便利コマンド一覧 windows - Knowledge Database IT
http://it.kndb.jp/entry/show/id/810
Tips for windows operations
http://www.naruto-u.ac.jp/~ito/tips/windows/win-tips.htm

81 :
すみません。お知恵をおかりできませんでしょうか?
二つのテキストファイル(111.txt、222.txt)の文字列を比較したいのです。
111.txt
-------
KB0001
KB0002
KB0003
KB0005
-------
222.txt
-------
KB0002
KB0006
--------
比較した結果は、KB0002のみが抽出されるようにしたいのです。
222.txtの内容を変数にSETして
FORでFCをまわしてやればいいのかとは思うですが・・・
すみませんがどうすればいいかアドバイスいただけませんでしょうか?
テキストファイルの内容を変数にSETする方法だけでもお教え願えませんでしょうか??

82 :
for /f %i in ( 222.txt ) do echo %i

83 :
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('"type 111.txt 222.txt|sort"' ) do (
if "!x!"=="%%i" echo %%i
set x=%%i
)

84 :
>>81
「comm」というUnixコマンド
$ comm -12 111.txt 222.txt
KB0002
…と思って探したらDOS版は意外に見あたらないな。
まぁ、Cコンパイラを持ってれば移植は簡単だが。

85 :
for /f %i in (111.txt 222.txt) do if exist %i (echo %i) else type nul>%i

86 :
findstr /g:222.txt 111.txt

87 :
> dir /b sss 2>&1 > NUL
ファイルが見つかりません
標準エラー出力を消すのってこれじゃ駄目なの?
うまく消えてくれない…

88 :
dir /b sss 2>NUL
でいいんじゃね

89 :
>>87
順番逆にすればおk
dir /b sss >NUL 2>&1

90 :
意味ねーだろ

91 :
>>90
何この馬鹿w

92 :
dir /b sss >NUL 2>&1
にどういう意味があるのか言ってみろよ
言えないだろ

93 :
馬鹿が居ますが気にしないでください

94 :
意味があるのは一目瞭然だけど、理由がわからんな…
だれかメカニズムを教えてくれ…

95 :
見苦しいな
正しいのは>>88で、>>89はゴミでした。
と素直に認めればよいのに

96 :
>は左から評価

97 :
ところで
標準エラー出力を消すのは>>88でよいけれど、
ファイルが見つかりません
てーのは標準出力なので、これを消すには
dir /b sss >NUL
ってなるけど、これじゃ意味ねー
if exist sss dir /b sss
みたいにやり方かえたほうがいいんじゃね?

98 :
すまん
>>97は勘違いだ。標準エラーだった

99 :
>>96
もっと根本的?なところで>>87がダメな理由がわかんね。
標準出力と標準エラー出力の両方消したいときに同じような事やってしまいそうだが。
素直に 2>nul 1>nul でも俺的にはokなんだけど。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Jane用ツール 「ε三(; ・∀・)鯖マデオツカイ Part 3 (714)
IEイラネで1000目指すスレ Part5 (764)
Cygwin使っている人いますか? 5 (785)
【漢専用】RegSeeker 八代目【ばっさり上等】 (543)
Windows PowerShell 2.0 Part2 (900)
Irvine Part29 (493)
--log9.info------------------
★いー歳こいてラジコンかよ?笑わせるな!★ (349)
【Scale】スケール志向R/C 1台目【スケール】 (493)
ヨコモGT500を語ろう (225)
★初心者TT-01情報★ (611)
ラジコンボーイを語るスレ (332)
【RC(ラジコン)】-ホーネット板復活 (376)
DSMスペクトラム解禁! 2Gめ (630)
【訴訟は】坂井三郎太 デンジャ 8機目【いつだ?】 (805)
【クローラー】RC建設機械【油圧】 (535)
三重県のラジコンしてる人 (461)
【岡山】弓削サーキットを語るスレ【桃太郎】 (828)
【EP】茨城県内のRC事情【GP】 (667)
【また】ラジコン天国ATC店総合【大阪か】 (356)
【XBでも】 タミヤ CC-01 4台目 【パジェロ】 (779)
姫路市近郊でラジコンしてる人集まれ! (533)
奈良のラジコン事情 その1 (384)
--log55.com------------------
【図星】→“差別”と“区別”を混同する底辺男
女が男を論破したのを見たことがない
女の方が平均寿命が長いのは男性差別
「結婚したくない」と親に言うべき?
【 男性差別CM 】 ファブリーズのCMなどへの苦情
「女叩きを続けるなら更に」だそーなW
● 処女がいいと言いながら死んでいく高齢独身 2
男に論破されると論点ずらしや人格攻撃してくる女