初心者〜管理者まで必読!コマンドライン(DOS Pt.4)
もれはMinGW+msysでWinのコマンドほとんど知らない
それはそれでアレだな。
>>951 内部コマンドに違いは無い。
外部コマンドというか、標準で入ってるコマンドラインツールの種類に違いがある。
その辺のことは普通にググれば出てくる。
バッチファイルにフォルダをドラック&ドロップしてフォルダパスを取得し、
プログラムにそのフォルダパスを渡そうと思ったのですが、
この時に窓が起動したパスはバッチファイルがある場所じゃないんですよね。
cdで移動させないとダメなのですが、そのままフルパスを書き込んでしまうと
バッチファイルとプログラムのあるフォルダを移動させた時に書き換えなければなりません。
ドラック&ドロップした時にバッチファイルのあるパスを取得する方法はないのでしょうか?
>>955 プログラムにフォルダパスを渡すのが目的なら、プログラムの実行ファイルかショートカットに
フォルダをD&Dすればいいじゃん。それに何故「D&Dしたフォルダのパスを渡す」のに
バッチファイルのパスが関係してくるのかわからん。
隠さないで、ちゃんと何というプログラムを使ってどういうことがしたいのか書けよ。
隠したいなら、その質問自体心の中に隠しておけ。
つーかパスの取得方法知ってるんだから、%0〜%9(0=バッチ自身、1〜9=実行時引数)とか、
%~f1だの%~dp0だのっていう修飾子は解ってるんだよね?
>>956 済みません、別に隠しておいた訳じゃないんです。
知り合いに作って貰ったjavaのプログラムで、下みたいにして使うんです。
java -classpath ConvLib.jar MakeArchive "フォルダフルパス"
"フォルダフルパス"の所を%1にしてやってみたら
>>955で書いたみたくなったのです。
%1 → "%~f1"
でどうだ?
ダメなら一度リダイレクトでそのコマンド自体を出力して確認してみろよ。
というかこれは最初にやるべきことなんだがな。
>>958 どうやら意図が伝わっていないみたいです…。
D&Dでcmdが起動するとタブルクリックの時とは違いカレントフォルダが
バッチファイルのある場所とは違う場所になっているんですよね。
ですのでバッチの中身は下の様にして"バッチファイルのあるフォルダのパス"を
D&Dでどうにかして取得する方法はないかという訳です。
cd "バッチファイルのあるフォルダのパス"
java -classpath ConvLib.jar MakeArchive %1
>>959 >>956に書いたじゃん>>%~dp0
%0 バッチファイルのパス c:\hoge\test.bat
%~d0 ドライブ <c:>
%~p0 パス <\hoge\>
%~n0 ファイル名 <test>
%~x0 拡張子 <.bat>
なのでdpならドライブとパスでc:\hoge\test.batに対してc:\hoge\が取得できる。
おぉ、dpとかの機能を正しく理解していませんでした…。
お手間を取らせてしまい申し訳ありませんでした。
そしてご丁寧に教えて下さり、ありがとうございました。
962 :
名無し~3.EXE:2006/07/08(土) 18:16:48 ID:IP7ZlJVS
質問です。
batファイルを作って、
複数のファイルをドラッグして
渡されたファイル1つ毎に同じ処理をしたいと思います。
forを使って出来るかなと思ってヘルプを読んだりしましたがわかりません。
for %%i (引数で渡されたファイル毎に) do (
他のコマンドA %%i
他のコマンドB %%i
)
どなたかご存知でしたら教えてください。
shift
for %%i in (%*) do
ちなみにshiftとgotoを使う手もある。
965 :
962:2006/07/08(土) 19:22:03 ID:IP7ZlJVS
966 :
名無し~3.EXE:2006/07/09(日) 03:20:48 ID:k9je+Jen
自作プログラム使ってテキストに書き込むってのやりたいんですけど、Dos窓から
自作プログラム -k[ここにaaa.txtに送り込みたい内容] aaa.txt
で実行なんですが複数行にするとそのプログラムが受け付けないです。
aaa.txtに送り込みたい内容を複数行にしたいです。
こういうときってどうすればいいんでしょうか?
なんか&#0173;みたいなの使って改行を表す方法ないですか?
こっちに引っ越してきても同じこと。
ファイルかパイプ渡ししろ
自作プログラム側である文字列を改行コードとして認識して書き込むときに改行コードに変換すればいいじゃん。
例えば"aaa.txtに送り込みたい内容"の文字列中の"_CRLF_"は改行コードに変換してaaa.txtに書き込めばいい。
あいうえお
かきくけこ
と書き込みたい場合は
aaa.exe -k[あいうえお_CRLF_かきくけこ] aaa.txt
みたいな感じで。
そんな変換するくらいなら、ファイル入力(別に標準入力でも同じだけど)を作った方が楽なんじゃない?
確かに単語(複数バイト長の)変換は結構大変だね
dir /b >a.txt
でファイルリスト作るときに、そのファイル内の行頭・行末に'をつけたいときはどうすればよい?
a.txtの中を
'filename1'
'filename2'
...
みたいにしたいんだけど。
>>971 dirコマンドではそういう形式での出力は出来ないから、
後からa.txtを読み込んで書き換えるとか、
そういう形式で出力できるコンソールアプリを作るとか、
for使ってお好みの出力を行うとか、まあいろいろあるわな。
>>971 for /f "usebackq delims=" %i in (`dir /b`) do echo '%i' >> a.txt
ごめん、こっちのがいいのか
for /f "usebackq delims=" %i in (`dir /b`) do @echo '%i' >> a.txt
次スレの準備しましょうか?
>>974 なんでこの場合にusebackq使うの?何か(隠れた)メリットあるの?
*
*
*
つぶすか
というわけで、
usebackq
の話は次スレで。
*
ところで、MS-DOS対応のプリンタって少なくなったよね。
今や、生DOSにとっては受難の時代だよね。
LIPS III とか ESC/P 対応のプリンタも少なくなり、消え去るのみか。
じっさいここ数年、BIOS書き換え以外で使ったことないからなぁ・・・
プリンタに限らず、DOSの需要もなくなってはいないのだが。
(こういう話は他のDOS専用スレでするべきなんだがな)
>>989 たしかにね。自分もまともにDOSつかったのってBIOS書き換えの時かも。
数年前、ISAバスの設定ユーティリティがDOSからしか立ち上がらんので立ち上げたこともあったが。
埋め
Missing Operating System
埋め
Invalid system disk.
Replace the Disk and then press any key.
埋め
埋めますよ?
NTLDR is missing
Press Ctrl+Alt+Del to restart
埋め
How many files(0-15)?
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。