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

このエントリーをはてなブックマークに追加
864名無し~3.EXE:05/03/07 01:42:52 ID:fSXZ7rvu
c:\hoge\hoge.txtからファイル名を取り除いて
c\hoge\を取り出したいのですが、方法がわかりません。
setかなと考えたものの先に進みません。
よろしくお願いします。
865名無し~3.EXE:05/03/07 01:58:03 ID:VIn2DXQt
>>864
%~dp1
866864:05/03/07 07:32:21 ID:fSXZ7rvu
<865さん
すみません。なんてかんたんなことがみえなくなっていたんだろ。
お手数をおかけしました。ありがとうございます。
867名無し~3.EXE:05/03/07 20:00:15 ID:xkivvu6h
バッチコマンドで、あるファイルのショットカットを作成することって可能ですか?
もし可能なら、方法を教えていただけると嬉しいです。
WinXPです。
868名無し~3.EXE:05/03/07 20:48:19 ID:JI6tm5Wz
なにそれかっこいい
869名無し~3.EXE:05/03/07 22:20:06 ID:xkivvu6h
ぐはっ!ショートカットっす…
870名無し~3.EXE:05/03/07 22:47:41 ID:nVNY24DZ
mkdir shotcut
871名無し~3.EXE:05/03/08 00:04:27 ID:w61AVD4Z
バッチプログラムを作成しています。

変数%Iに数字以外の項目が入っていたら
エラーエンドさせるようなチェック項目を追加したいのですが、

上手くコマンドを作成出来ません。。

findstr /R [0-9]*
とか
for ??? in (%%I) do ?????

みたいなコマンドを上手く使えばのでしょうが、
知恵と経験が足りなくうまくいかないです・・・・。
誰かお力添えを!!!

お願いいたします。
872名無し~3.EXE:05/03/08 01:34:31 ID:epD5YLVP
>871

∀`)ノ echo (変数)|for /f %a in ('findstr /R "[^0-9]"') do if not "%a"=="" (処理)
873名無し~3.EXE:05/03/08 08:27:35 ID:lPkf5BGo
>>872
パイプの扱いに不慣れなので教えて欲しいのですが、
先のechoが出力した結果は、for 文のどこに行くのですか
874867:05/03/08 19:59:05 ID:gdZVEB8v
どうやら、バッチでショートカットを作る方法はないようですね。
失礼しました。
875名無し~3.EXE:05/03/08 21:13:34 ID:c5qjj3YS
質問です。
バッチファイルでpauseが止まらずに先に進んでしまうのですが何故でしょうか?
同じバッチを別のPCで実行させた場合ちゃんと止まります。
OSはXPです。
876名無し~3.EXE:05/03/08 21:26:04 ID:ZmKzCKc7
プロンプトからpause打ってみたらどうなる?
バッチにpauseのみ記したのを実行するとどうなる?
877871:05/03/09 00:45:59 ID:KUEuVu8j
>>872

ありがとうございました。
助かりました。

>>875

そのpauseはif文の中にあったりしません?
ifの条件に合わず、その処理が流れてなかったり、
ifの構文自体がエラーだったりしてませんか?
878875:05/03/09 20:39:35 ID:ZSuVwTmj
>>876
アドバイスありがとうございました。
どうやら途中の全角文字が悪さをしていたようです。
漢字を外したら上手く動きました。
それぞれのPCで動きが違うのは謎ですが・・・
879名無し~3.EXE:05/03/12 11:11:02 ID:zCliqIwg
XPで文字の色、背景の色をコマンドを使って変えたいのですが、どうしたらいいですか
echo ^[[31mがだめぽです
880名無し~3.EXE:05/03/12 12:06:04 ID:OeF0yg8Y
command.comにansi.sysを組み込めばXPでもエスケープシーケンスが使える。
cmd.exeはエスケープシーケンスは使えないがcolorという内部コマンドがある。
881879:05/03/12 12:54:30 ID:zCliqIwg
>>880
ありがとうごさいます
colorっていう便利なコマンドがあるんですね

エスケープシーケンス使いたいのでできれば、
その組み込む方法を教えて頂けないでしょうか
882879:05/03/12 12:57:18 ID:zCliqIwg
すいません。自己解決しました。

ありがとうございました。
ttp://kasai86.ld.infoseek.co.jp/dos/esc.htm
883879:05/03/12 13:27:01 ID:zCliqIwg
これでできると思ったのですが
できませんでした。

XPでは、エスケープシーケンスは使えないんでしょうか
884名無し~3.EXE:05/03/12 14:42:00 ID:OeF0yg8Y
885名無し~3.EXE:05/03/12 16:23:42 ID:2XAWv59q
普段Win98使ってるのだが、別のマシンのWinXP上でバッチ的にmp3のエンコードを
やろうとしていてファイル名処理をしなきゃならないからwshでも使ってみるか、
と思ったらcmd.exeってwin98のcommand.comからかなり拡張されてるんだね。
このスレを流し見てかなりのことが出来そうなのがわかったよ。
だが、細かい処理をするのにはかなり試行錯誤がいりそう・・・
886名無し~3.EXE:05/03/12 22:04:24 ID:9Qlj55nE
NT系では16bitプログラムしかエスケープシーケンスは使えない。
887名無し~3.EXE:05/03/13 09:19:19 ID:ekyBgtcO
wowexec
888名無し~3.EXE:05/03/13 15:53:16 ID:mqNA9ll7
\x1b[1;31m

32bitでもエスケープシーケンスが反映される分、
Linuxのコンソールのほうが優秀だぞヽ(`Д´)ノウワァァン

\x1b[m
889名無し~3.EXE:05/03/16 23:29:55 ID:D10CST2c
【質問】
 WIN2000でSHUTDOWNを解除するコマンドがあるか。あるなら知りたい。

【調べた事】
 ・XPでは、SHUTDOWNのコマンドは使用できるが、2000ではコマンド自体がない。
 ・巷にあるツールでは、2000の環境でも、その辺のコントロールをするツールがある。
   (ただし、そのツールでキックしたSHUTDOWNに対して解除効果のみ)

【なぜ知りたいか】
 SYSTEMが不安定で、最近SHUTDOWNのカウントダウンが急にはじまる。
 データ保存する前に落ちるってのは百歩譲って仕様がないとしても
 サービスパック等のUPDATE中は非常にむかつく。
  (カーネルいじってる最中に落とされると、起動しなくなし、鬱)
 そこで、カウントダウン中に回避する方法を調べたいと。。。



  
890名無し~3.EXE:05/03/17 00:26:49 ID:RqNo9BjU
> 最近SHUTDOWNのカウントダウンが急にはじまる
これってまさか……
891名無し~3.EXE:05/03/17 01:03:04 ID:l3YAFRY+
892889:05/03/17 01:32:46 ID:vsspT97T
>>891
可能性大です…。

WINDOWSを再インストール後、裸同然のPCにも関わらず、回線繋いででセキュリティパッチを
あてようとしたので。その際に運悪く感染したのかもしれません。

症状も私の状況にマッチしているように思います。
明日詳細に確認・対応をしていきたいと思います。

ありがとうございました。

しかし、今頃MSブラストにやられるとは不覚…
893名無し~3.EXE:05/03/17 02:00:49 ID:THuGDjh0
原因究明しないで一時的な回避策を探そうとしたことの方が不覚だってことに気付け。
894名無し~3.EXE:05/03/17 03:56:41 ID:yG1sdp17
shutdown /A で止まったような木が駿河。
895名無し~3.EXE:05/03/17 11:01:33 ID:0vbb3NJr
指定時刻にmplayerc.exe(MediaPlayerClassic)で特定の動画を再生したいです。
cronNT(http://www.vector.co.jp/soft/winnt/util/se232096.html
を使用して、
指定時刻に以下のbatファイルを実行しますが、再生されません(batは実行されているようなのですが)
-----以下batファイル-----
C:\mplayer.exe "test.mpeg"
-----以上batファイル-----
同内容を手動で実行した場合は再生されるのですが、
どのようにしたら、自動で再生することが可能でしょうか?
お答え頂ければ幸いです。
896名無し~3.EXE:05/03/17 12:36:14 ID:FTuuOG2G
test.mpegをフルパスにすれば?
とりあえずタスクスケジューラからは問題なく再生できた
897名無し~3.EXE:05/03/17 16:51:03 ID:/DgM49vC
ATOKのバックアップ取りたいんですが
Cドライブ内だと
@echo off
cd %APPDATA%\Justsystem\Atok14
xcopy *.* F:\backup\atok\ /D /Y
pause
これで出来るんですがほかのドライブでこれを実行すると(フォルダはC:\〜と直接指定してます)

'C:\Documents' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

と出てバックアップ取れません。どこを変更したらいいのでしょうか?
898名無し~3.EXE:05/03/17 17:57:33 ID:FTuuOG2G
cd /d %APPDATA%~~~
cd /d "C:\Documents and Settings\~~~"
899889:05/03/18 05:34:09 ID:PaLwTRqA
>>894
SHUTDOWN /A はXPのみ使用可能なコマンドなので、できなかったです。

あと、原因はブラストではなかったみたいです
900名無し~3.EXE:05/03/18 08:29:45 ID:JZaQmHdG
>>899
原因わかったの?
901名無し~3.EXE:05/03/18 21:51:50 ID:VOwrR3Ng
>>895
バックグラウンドで動いてて表示されてないだけじゃねの?
902名無し~3.EXE:05/03/18 22:08:50 ID:G7CBDPD7
findstr で直前のパターン?を任意の回数繰り返しを指定することってできる?
BREGEXP.DLL を使った正規表現でいう {n} みたいな。
903名無し~3.EXE:05/03/18 23:02:00 ID:VOwrR3Ng
findstr に使えるメタ文字は次のとおりです。

.       ワイルドカード:任意の文字
*      繰り返し:直前の文字またはクラスのゼロ個以上
^      行位置:行頭
$      行位置:行末
[class]  文字クラス:セットの任意の 1 文字
[^class]  逆クラス:セット以外の任意の 1 文字
[x-y]    範囲:指定した範囲の任意の文字
\x      エスケープ:メタ文字 x のリテラル使用
\<xyz    単語位置:単語の先頭
xyz\>   単語位置:単語の終わり
904名無し~3.EXE:05/03/20 02:11:36 ID:aHRxWLLB
いちおヘルプくらいは読んだ上で聞いたんだけど。無理なのね。
905名無し~3.EXE:2005/03/29(火) 14:25:56 ID:WyKgjPwd
こんにちは。↓のコマンドラインで hoge:~0,1!" の 1 の部分で
プログラムを止めて、1ではなく任意の数字を入力できるようにすることは
できるでしょうか?(なるべくなら2回止めずに、1回数字を指定したら
後のhoge:~0,1!"のところで1回目の数字を自動で獲得してくれるといいです。)

@echo off
setlocal enabledelayedexpansion
(%~d1) && (cd %1)
for %%a in (*) do (
Set hoge=%%~na
MD "%%~dpa!hoge:~0,1!"
MOVE %%a "%%~dpa!hoge:~0,1!"
)
D&Dしたフォルダ内のファイルをファイル名に従ってフォルダに振り分ける
コマンドのようですが、参照する先頭のファイルの文字数を指定したいのです。
よろしくお願いします。
906名無し~3.EXE:2005/03/29(火) 16:10:09 ID:Qfx0CYTE
>>905
@echo off
setlocal enabledelayedexpansion
cd /d %~dp1
set /p hage=文字数は?
for %%a in (*) do (
Set hoge=%%~na
MD "%%~dpa!hoge:~0,%hage%!"
MOVE %%a "%%~dpa!hoge:~0,%hage%!"
)
907905:2005/03/29(火) 19:58:16 ID:rs9Nb7/M
>>906
ありがとうございます。
でも、コマンドの挙動が少し変わってしまったようでつ。
D&Dしたフォルダの中身のファイルを振り分ける挙動だったのですが、
D&Dしたフォルダがあるフォルダのファイルを振り分けるようになって
しまったようです...。(´_`。)グスン
すいませんが、D&Dしたフォルダの中のファイルを振り分けるように
もう一度お願いしますです。
908905:2005/03/29(火) 20:43:13 ID:rs9Nb7/M
3行目を元に戻したらできました。
>>906さん大変ありがとうございました。m(_ _)m
9091/2:Windows暦21/04/02(土) 14:25:27 ID:kQdexS6c
ftpについて質問です。
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/270ftpscript/ftpscript.html
をお手本にWSHで自動的にアップロードするスクリプトを書いたのですが、
FTPでサーバとのコネクトはとれるのですが、
アップロードの時にタイムアウトになるまで止まってしまいます。

例:ftp -s:test.txt
-- test.txtの内容 --
open <サーバホスト>
<ユーザ名>
<パス>
cd adir/bdir
ascii
put "C:\a.txt"
quit

-- コマンド実行時のプロンプト --
ftp> open <サーバホスト>
Connected to <サーバホスト>.
220 <サーバ名> FTP server ready
User (<サーバホスト>:(none)):
331 Password required for <ユーザ名>.

230 User <ユーザ名> logged in.
ftp> cd adir/bdir
250 CWD command successful.
ftp> ascii
200 Type set to A
ftp> put "C:\a.txt" // ここでタイムアウトになるまで待たされてるっぽい(1分くらい止まる)
Connection closed by remote host.
ftp> quit
9102/2:Windows暦21/04/02(土) 14:25:41 ID:kQdexS6c
当方の環境はWinXPProSP2で、
Windowsのファイアーウォールを有効にしています。
ファイアーウォールを無効にすると問題なくアップロード(put)できるのですが、
有効にしてこのコマンドで使われているプログラムの%SYSTEM%ftp.exeのブロックを解除しても
同じように途中で止まります。

ブロックする時にポップアップで警告するようにしても、
「このプログラムをブロックし続けますか?」
のダイアログで出てくるプログラムはftp.exeだけです。

自分だけが使うのならその度ファイアーウォールを無効にしたりすれば良いのですが、
仕事で配布する予定のものなので、できれば一回だけの設定などで簡単に回避したいのですが・・。

ちょっとスレ違いっぽくて申し訳ないのですが、
よろしくお願いします。
911名無し~3.EXE:Windows暦21年,2005/04/02(土) 15:32:44 ID:E9iJoLBH
>>910
察するにポートの空け方が間違ってるだけじゃないの?
kerioのfirewall使ってるけどftp.exeを許可したら問題なくputできたよ
コマンドラインから穴の空け方は
ttp://www.atmarkit.co.jp/fwin2k/operation/xpsp2dep02/xpsp2dep02_04.html
に書いてあるから、もう一度設定を見直してはどうか

まぁpro使ってるぐらいだから言われるまでもないかもしれんけど
配布される側のuser権限によってはftp使えないかもしれない、、
ことも考慮した方がいい
912名無し~3.EXE:2005/04/06(水) 23:59:07 ID:jUKr1WMs
CD(DVD)ドライブのドライブレターを取得する方法ってありますかね?
ログを読んでもちょっと理解できなかったので。。。
913名無し~3.EXE
>912
WSH使ってドライブA〜Zのドライブ種別を調べるのが最も手っ取り早いかも。